- Added afp_monitor.rs module to track AFP_AfpInfo backup_time - Open struct now has 'modified' flag to track file modifications - write.rs sets modified=true on successful write - close.rs calls AfpMonitor::update_backup_time() on modified files - create.rs calls AfpMonitor::init_afp_info() on new file creation - AFP_AfpInfo stored as xattr com.apple.aapl.AfpInfo - backup_time updated to current epoch time on modification Also includes: - LZ4 compression using lz4_flex crate - Case sensitivity conditional on backend capabilities - LDAP cfg feature gate fix - RAID rebuild reconstruction implementation - DOS attributes xattr persistence - Snapshot disk persistence Tests: 201 smb-server, 452 markbase-core (653 total)
66 lines
1.3 KiB
TOML
66 lines
1.3 KiB
TOML
[package]
|
|
name = "smb-server"
|
|
version = "0.4.1"
|
|
edition = "2024"
|
|
rust-version = "1.95"
|
|
license = "MIT"
|
|
repository = "https://github.com/paltaio/rust-smb-server"
|
|
description = "SMB2/3 file-sharing server library with pluggable storage backends."
|
|
|
|
[dependencies]
|
|
tokio = { version = "1.40", features = ["full"] }
|
|
bytes = "1.7"
|
|
async-trait = "0.1"
|
|
tracing = "0.1"
|
|
thiserror = "1"
|
|
uuid = { version = "1.10", features = ["v4"] }
|
|
binrw = "0.15"
|
|
getrandom = "0.4"
|
|
cap-std = { version = "3", optional = true }
|
|
hmac = "0.12"
|
|
sha2 = "0.10"
|
|
md-5 = "0.10"
|
|
md4 = "0.10"
|
|
aes = "0.8"
|
|
cmac = "0.7"
|
|
rc4 = "0.2"
|
|
aes-gcm = "0.10"
|
|
ccm = "0.5"
|
|
xattr = "1.0" # Extended attributes support (AFP_AfpInfo)
|
|
|
|
[features]
|
|
default = ["localfs"]
|
|
localfs = ["dep:cap-std"]
|
|
|
|
[dev-dependencies]
|
|
tracing-subscriber = "0.3"
|
|
tempfile = "3"
|
|
hex = "0.4"
|
|
|
|
[[test]]
|
|
name = "integration_localfs"
|
|
path = "tests/integration_localfs.rs"
|
|
required-features = ["localfs"]
|
|
|
|
[[test]]
|
|
name = "integration_localfs_write"
|
|
path = "tests/integration_localfs_write.rs"
|
|
required-features = ["localfs"]
|
|
|
|
[[test]]
|
|
name = "integration_negotiate"
|
|
path = "tests/integration_negotiate.rs"
|
|
required-features = ["localfs"]
|
|
|
|
[[test]]
|
|
name = "integration_compound"
|
|
path = "tests/integration_compound.rs"
|
|
required-features = ["localfs"]
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
strip = true
|