[package]
name = "logdb"
version = "0.6.0"
edition = "2024"
rust-version = "1.85"
description = "Embedded, append-only, crash-recoverable, optionally tamper-proof local log database"
license = "Apache-2.0"
repository = "https://github.com/lv-agent/lv-logdb"
homepage = "https://github.com/lv-agent/lv-logdb"
documentation = "https://docs.rs/logdb"
readme = "README.md"
keywords = ["log", "database", "wal", "append-only", "embedded"]
categories = ["database-implementations", "cryptography"]
[package.metadata.docs.rs]
features = ["hash-chain", "compression", "encryption", "remote-push", "tracing", "metrics"]
[dependencies]
thiserror = "2"
crc32c = "0.6"
sha2 = { version = "0.10", optional = true }
blake3 = { version = "1", optional = true }
libc = "0.2"
scopeguard = "1"
zstd = { version = "0.13", optional = true, default-features = false }
aes-gcm = { version = "0.10", optional = true, default-features = false, features = ["aes", "alloc"] }
getrandom = { version = "0.2", optional = true }
tracing = { version = "0.1", optional = true }
metrics = { version = "0.23", optional = true }
zeroize = { version = "1", features = ["zeroize_derive"] }
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
tempfile = "3"
proptest = "1"
rand = "0.8"
serial_test = "3"
[features]
default = []
hash-chain = ["sha2", "blake3"]
compression = ["zstd"]
encryption = ["aes-gcm", "getrandom"]
remote-push = []
tracing = ["dep:tracing"]
metrics = ["dep:metrics"]
testing = []
[[bench]]
name = "append_bench"
harness = false
[[example]]
name = "testsuite"
required-features = ["testing"]
[[example]]
name = "encryption"
required-features = ["encryption"]
[[test]]
name = "fuzz"
required-features = ["testing"]