libro 0.25.3

Cryptographic audit chain — tamper-proof event logging with hash-linked entries and verification
Documentation
[package]
name = "libro"
version = "0.25.3"
edition = "2024"
rust-version = "1.89"
license = "AGPL-3.0-only"
description = "Cryptographic audit chain — tamper-proof event logging with hash-linked entries and verification"
homepage = "https://github.com/MacCracken/libro"
repository = "https://github.com/MacCracken/libro"
readme = "README.md"
documentation = "https://docs.rs/libro"
keywords = ["audit", "logging", "cryptographic", "chain", "tamper-proof"]
categories = ["cryptography", "data-structures"]
exclude = [".claude/", ".github/", "benchmark-results/", "docs/", "scripts/"]

[features]
default = []
sqlite = ["dep:rusqlite"]
signing = ["dep:ed25519-dalek", "dep:rand_core"]
streaming = ["dep:majra", "dep:tokio"]

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "2"
tracing = "0.1"
uuid = { version = "1", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
sha2 = "0.10"
fs2 = "0.4"
ed25519-dalek = { version = "2", features = ["rand_core"], optional = true }
rand_core = { version = "0.6", features = ["getrandom"], optional = true }
rusqlite = { version = "0.34", features = ["bundled"], optional = true }
majra = { version = "0.21.3", features = ["pubsub"], optional = true }
tokio = { version = "1", features = ["sync"], optional = true }

# Kernel audit subsystem (optional — agnosys Linux audit netlink interface)

[dev-dependencies]
tempfile = "3"
criterion = { version = "0.5", features = ["html_reports"] }
rusqlite = { version = "0.34", features = ["bundled"] }
ed25519-dalek = { version = "2", features = ["rand_core"] }
rand_core = { version = "0.6", features = ["getrandom"] }
majra = { version = "0.21.3", features = ["pubsub"] }
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }

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