liteboxfs 0.2.0

A modern POSIX filesystem in a SQLite database
Documentation
[package]
name = "liteboxfs"
version = "0.2.0"
edition = "2024"
# If you update this, update the Forgejo Actions workflow as well.
rust-version = "1.90.0"
authors = ["Lark Aster <lark@lark.gay>"]
description = "A modern POSIX filesystem in a SQLite database"
homepage = "https://codeberg.org/justlark/liteboxfs"
repository = "https://codeberg.org/justlark/liteboxfs"
documentation = "https://docs.rs/liteboxfs"
readme = "../README.md"
keywords = ["sqlite", "database", "filesystem", "archive"]
categories = ["filesystem"]
license = "Apache-2.0"

[package.metadata.docs.rs]
all-features = true

[dependencies]
thiserror = "2.0.17"
bitflags = "2.10.0"
blake3 = "1.8.2"
uuid = { version = "1.18.1", features = ["v4"] }
rusqlite = { version = "0.37.0", features = ["functions", "i128_blob"] }
fastcdc = { version = "3.2.1", optional = true }
zstd = { version = "0.13.3", optional = true }
secrecy = { version = "0.10.3", optional = true }

[target.'cfg(target_family = "unix")'.dependencies]
nix = { version = "0.30.1", features = ["fs", "user"], optional = true }
xattr = { version = "1.6.1", optional = true }

[target.'cfg(target_os = "linux")'.dependencies]
fuser = { version = "0.17.0", optional = true }

[dev-dependencies]
rand = "0.9.2"
rusqlite = { version = "0.37.0", features = ["functions", "i128_blob"] }
xpct = { version = "0.5.1", features = ["diff"] }
criterion = { version = "0.8.1", features = ["html_reports"] }
tempfile = "3.24.0"

[features]
default = ["fs"]
fs = ["dep:nix", "dep:xattr"]
chunking = ["dep:fastcdc"]
compression = ["dep:zstd"]
fuse = ["fs", "dep:fuser"]
bundled-sqlite = ["rusqlite/bundled"]
# This is a pseudo-feature used for conditional compilation in the codebase. It
# is not meant to be enabled directly by users and should not be considered
# public API.
_encryption = ["dep:secrecy"]
sqlcipher = ["rusqlite/sqlcipher", "_encryption"]
bundled-sqlcipher = ["rusqlite/bundled-sqlcipher", "_encryption"]
bundled-sqlcipher-vendored-openssl = [
  "rusqlite/bundled-sqlcipher-vendored-openssl",
  "_encryption",
]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = [
  "cfg(coverage,coverage_nightly)",
] }

[[bench]]
name = "read"
harness = false

[[bench]]
name = "write"
harness = false

[[bench]]
name = "children"
harness = false

[[bench]]
name = "descendants"
harness = false

[[bench]]
name = "walk"
harness = false

[[bench]]
name = "snapshot"
harness = false

[[bench]]
name = "archive"
harness = false

[[bench]]
name = "copy"
harness = false

[[bench]]
name = "rename"
harness = false

[[bench]]
name = "create"
harness = false