[package]
edition = "2024"
rust-version = "1.89"
name = "libro"
version = "0.25.3"
build = false
exclude = [
".claude/",
".github/",
"benchmark-results/",
"docs/",
"scripts/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Cryptographic audit chain — tamper-proof event logging with hash-linked entries and verification"
homepage = "https://github.com/MacCracken/libro"
documentation = "https://docs.rs/libro"
readme = "README.md"
keywords = [
"audit",
"logging",
"cryptographic",
"chain",
"tamper-proof",
]
categories = [
"cryptography",
"data-structures",
]
license = "AGPL-3.0-only"
repository = "https://github.com/MacCracken/libro"
[features]
default = []
signing = [
"dep:ed25519-dalek",
"dep:rand_core",
]
sqlite = ["dep:rusqlite"]
streaming = [
"dep:majra",
"dep:tokio",
]
[lib]
name = "libro"
path = "src/lib.rs"
[[example]]
name = "audit_chain"
path = "examples/audit_chain.rs"
[[bench]]
name = "chain"
path = "benches/chain.rs"
harness = false
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.ed25519-dalek]
version = "2"
features = ["rand_core"]
optional = true
[dependencies.fs2]
version = "0.4"
[dependencies.majra]
version = "0.21.3"
features = ["pubsub"]
optional = true
[dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
optional = true
[dependencies.rusqlite]
version = "0.34"
features = ["bundled"]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["sync"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.ed25519-dalek]
version = "2"
features = ["rand_core"]
[dev-dependencies.majra]
version = "0.21.3"
features = ["pubsub"]
[dev-dependencies.rand_core]
version = "0.6"
features = ["getrandom"]
[dev-dependencies.rusqlite]
version = "0.34"
features = ["bundled"]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
]