Cargo Features

[dependencies]
smb = { version = "0.11.1", default-features = false, features = ["async", "multi_threaded", "single_threaded", "compress_pattern_v1", "compress_lz4", "compress", "encrypt_aes256ccm", "encrypt_aes256gcm", "encrypt_aesccm", "encrypt_aesgcm", "encrypt", "sign_gmac", "sign_cmac", "sign_hmac", "sign", "quic", "rdma", "netbios-transport", "kerberos", "std-fs-impls", "ksmbd-multichannel-compat", "test-multichannel", "test-rdma"] }
default = async, compress, encrypt, netbios-transport, sign, std-fs-impls

These default features are set whenever smb is added without default-features = false somewhere in the dependency tree.

async default

Threading models

Enables futures, futures-core, and futures-util, async of smb-transport and tokio, tokio-stream, and tokio-util

tokio:

Async

Affects parallel::async_backend, worker_trait::Worker.receive_next_cancellable, msg_handler::ReceiveOptions.async_cancel, directory::iter_stream, file_util::ReadAtChannel.read_at_channel, file_util::ReadAt.read_at, file_util::WriteAtChannel.write_at_channel, file_util::WriteAt.write_at, sync_helpers::RwLock, sync_helpers::Mutex

multi_threaded

Enables is_sync of maybe-async, is_sync of smb-rpc and smb-transport, blocking of optional reqwest ^0.12

Affects parallel::threading_backend

single_threaded

Enables is_sync of maybe-async, is_sync of smb-rpc and smb-transport, blocking of optional reqwest ^0.12

Affects worker::single_worker

compress_pattern_v1 compress

Compression

Affects compression::PatternV1Payload

compress_lz4 compress

Enables lz4_flex ^0.11

Compression

compress default = compress_lz4, compress_pattern_v1
encrypt_aes128ccm encrypt_aes256ccm encrypt_aesccm?

Enables aead and ccm

encrypt_aes128gcm encrypt_aes256gcm encrypt_aesgcm?

Enables aead and aes-gcm

encrypt_aesccm encrypt = encrypt_aes128ccm, encrypt_aes256ccm
encrypt_aesgcm encrypt = encrypt_aes128gcm, encrypt_aes256gcm
encrypt default = encrypt_aesccm, encrypt_aesgcm
sign_gmac sign

Signing

Enables aes-gcm

sign_cmac sign

Enables cmac

sign_hmac sign
sign default = sign_cmac, sign_gmac, sign_hmac
quic

Transport

Enables quic of smb-transport

rdma

Enables rdma of smb-transport

Affects config::ClientConfig.rdma_type

netbios-transport default

Enables netbios-transport of smb-transport

kerberos = reqwest

Kerberos requires reqwest for HTTP transport, for kerberos

Enables byteorder

std-fs-impls default

Implement traits for std::fs::File/tokio::fs::File

Enables fs of optional tokio

ksmbd-multichannel-compat

Estooric use cases

test-multichannel

Tests

test-ndr64 test-quic test-rdma

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

reqwest kerberos? multi_threaded? single_threaded?

Enables reqwest ^0.12