[package] name = "acid-store" version = "0.14.2" authors = ["Wren Powell "] edition = "2021" description = "A transactional and deduplicating virtual file system" homepage = "https://github.com/lostatc/acid-store" repository = "https://github.com/lostatc/acid-store" documentation = "https://docs.rs/acid-store" readme = "README.md" keywords = ["storage", "filesystem", "database", "transaction", "security"] categories = ["filesystem", "cryptography"] license = "Apache-2.0" # If you update this, update the GitHub Actions workflow as well. rust-version = "1.70.0" # We use an attribute when building on docs.rs so we can make use of unstable rustdoc features. [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] # File system relative-path = { version = "1.8.0", optional = true } walkdir = { version = "2.2.9", optional = true } filetime = { version = "0.2.8", optional = true } tempfile = { version = "3.1.0", optional = true } hole-punch = { version = "0.0.3", optional = true } # FUSE fuser = { version = "0.11.1", optional = true } # I/O cdchunking = "1.0.0" # SQL rusqlite = { version = "0.23.0", features = ["bundled"], optional = true } # Redis redis = { version = "0.21.6", optional = true } # Amazon S3 rust-s3 = { version = "0.32.3", optional = true, default-features = false, features = [ "sync-rustls-tls", ] } # Sftp ssh2 = { version = "0.8.2", features = ["vendored-openssl"], optional = true } # Hashing digest = "0.10.5" blake3 = { version = "1.3.1", features = ["traits-preview"] } # Error handling thiserror = "1.0.9" anyhow = "1.0.65" # Compression lz4 = { version = "1.23.1", optional = true } # Encryption sodiumoxide = { version = "0.2.7", optional = true } rand = { version = "0.8.5", optional = true } secrecy = "0.8.0" # Serialization serde = { version = "1.0.103", features = ["derive", "rc"] } rmp = "0.8.8" rmp-serde = "1.1.1" # Data structures weak-table = "0.2.3" bimap = { version = "0.6.1", optional = true } # Misc uuid = { version = "1.4.0", features = ["serde", "v4"] } once_cell = "1.5.2" bitflags = { version = "2.3.3", features = ["serde"] } static_assertions = "1.1.0" # Unix-specific dependencies [target.'cfg(unix)'.dependencies] nix = { version = "0.20.2", optional = true } xattr = { version = "0.2.2", optional = true } users = { version = "0.11.0", optional = true } exacl = { version = "0.6.0", optional = true } [dev-dependencies] rand = { version = "0.8.5", features = ["small_rng"] } rstest = "0.10.0" rstest_reuse = "0.1.3" spectral = "0.6.0" tempfile = "3.1.0" serial_test = "0.4.0" dotenv = "0.15.0" criterion = "0.3.1" bytesize = "1.0.0" maplit = "1.0.2" [features] default = [] store-directory = [] store-sqlite = ["dep:rusqlite"] store-redis = ["dep:redis"] store-s3 = ["dep:rust-s3"] store-sftp = ["dep:ssh2"] store-rclone = ["store-sftp", "dep:rand"] repo-file = ["dep:relative-path", "dep:walkdir", "dep:hole-punch"] repo-value = [] file-metadata = [ "repo-file", "dep:nix", "dep:filetime", "dep:xattr", "dep:users", "dep:exacl", ] compression = ["dep:lz4"] encryption = ["dep:sodiumoxide", "dep:rand"] fuse-mount = ["dep:fuser", "dep:bimap", "dep:tempfile", "file-metadata"] [[bench]] name = "io" required-features = ["encryption"] harness = false