- Add VfsFile: Send supertrait for Mutex compatibility - Fix SmbServerCommand: struct → Subcommand enum with Start variant - Fix tracing_subscriber::init() → try_init() to avoid panic when logger already initialized - Fix CLI subcommand name: smb-server → smb-start (flatten naming) - Add #[command(name = "smb-start")] for CLI disambiguation - Fix unused variable warnings (smb_fs.rs, smb_server_backend.rs) - Remove unused VfsFile imports (webdav.rs, scp_handler.rs) - Integration test: Docker smbclient verified (list, upload, read)
82 lines
2.1 KiB
TOML
82 lines
2.1 KiB
TOML
[package]
|
|
name = "smb2"
|
|
version = "0.11.3"
|
|
edition = "2021"
|
|
rust-version = "1.85"
|
|
license = "MIT OR Apache-2.0"
|
|
description = "Pure-Rust SMB2/3 client library with pipelined I/O"
|
|
repository = "https://github.com/vdavid/smb2"
|
|
keywords = ["smb", "smb2", "smb3", "cifs", "network"]
|
|
categories = ["network-programming", "filesystem"]
|
|
readme = "README.md"
|
|
documentation = "https://docs.rs/smb2"
|
|
exclude = [
|
|
".github/",
|
|
"AGENTS.md",
|
|
"docs/",
|
|
"justfile",
|
|
"deny.toml",
|
|
"clippy.toml",
|
|
"rustfmt.toml",
|
|
"related-repos/",
|
|
]
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
|
|
[dependencies]
|
|
# Logging facade -- application picks the backend (env_logger, tracing, etc.)
|
|
log = "0.4"
|
|
|
|
# Async runtime agnostic
|
|
async-trait = "0.1"
|
|
|
|
# `FuturesUnordered` for pipelined concurrent `execute` calls.
|
|
futures-util = { version = "0.3", default-features = false, features = ["std", "async-await"] }
|
|
|
|
# Error handling
|
|
thiserror = "2"
|
|
|
|
# Enum conversion derives
|
|
num_enum = "0.7"
|
|
|
|
# Async runtime -- transport layer needs net, io-util, time, sync
|
|
tokio = { version = "1", features = ["net", "io-util", "time", "sync", "rt"] }
|
|
|
|
# Crypto -- signing, encryption, key derivation
|
|
hmac = "0.13"
|
|
sha2 = "0.11"
|
|
aes = "0.9"
|
|
aes-gcm = "=0.11.0-rc.4"
|
|
ccm = "=0.6.0-rc.3"
|
|
cmac = "=0.8.0-rc.5"
|
|
digest = "0.11"
|
|
|
|
# NTLM authentication (MS-NLMP)
|
|
md-5 = "0.11"
|
|
md4 = "0.11"
|
|
|
|
# Kerberos key derivation (AES string-to-key)
|
|
pbkdf2 = "0.13"
|
|
sha1 = "0.11"
|
|
|
|
# Cryptographically secure random
|
|
getrandom = "0.4"
|
|
|
|
# Compression
|
|
lz4_flex = "0.13"
|
|
|
|
# Optional: `Serialize` derives on diagnostics types. Off by default.
|
|
serde = { version = "1", optional = true, features = ["derive"] }
|
|
|
|
[features]
|
|
testing = [] # Enables smb2::testing module for Docker-based test servers
|
|
fuzzing = [] # Exposes parser entry points for `fuzz/` targets; not for applications
|
|
serde = ["dep:serde"] # `Serialize` impls on `Diagnostics` types and the protocol enums they embed.
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "net", "io-util"] }
|
|
proptest = "1"
|
|
env_logger = "0.11"
|
|
serde_json = "1" # JSON round-trip tests for the `serde` feature
|