69 lines
2.3 KiB
TOML
69 lines
2.3 KiB
TOML
[package]
|
|
name = "levcs-store"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
description = "Durable transaction spine for LeVCS instances: journal, recovery, index, and snapshots."
|
|
|
|
[features]
|
|
default = []
|
|
|
|
# Deterministic crash-injection points. Compiled out entirely in release; see
|
|
# `failpoints.rs`. Required by the crash matrix (scope 4-A3).
|
|
failpoints = []
|
|
|
|
# Journal-level drive API (`drive.rs`) used by the crash driver and the
|
|
# P1-micro benchmark before `StoreEngine::submit` exists. Test/bench seam only;
|
|
# never enabled in a release binary. See scope 2.1.
|
|
store-internals = []
|
|
|
|
# Gates construction of `ValidatedTransaction`. Enabled only by validated
|
|
# ingest (`levcs-instance`), this crate's own recovery path, and the Phase 2
|
|
# migrator. Deliberately NOT reachable from `&StoreEngine`; see scope 2.2.
|
|
store-privileged = []
|
|
|
|
# Long-run benchmark harness dependencies.
|
|
bench-harness = ["dep:hdrhistogram", "dep:ed25519-dalek", "dep:rand_core"]
|
|
|
|
[dependencies]
|
|
levcs-core = { workspace = true }
|
|
levcs-protocol = { workspace = true }
|
|
blake3 = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
hex = { workspace = true }
|
|
arc-swap = { workspace = true }
|
|
crossbeam-channel = { workspace = true }
|
|
im = { workspace = true }
|
|
rustix = { workspace = true }
|
|
libc = { workspace = true }
|
|
memmap2 = { workspace = true }
|
|
hdrhistogram = { workspace = true, optional = true }
|
|
# Benchmark-only. The P2 bundle needs a real Ed25519 attestation and section 5.2
|
|
# requires P2 to measure real signing cost, but the store may not call into
|
|
# levcs-identity. The harness therefore implements CommitEvidenceSigner itself;
|
|
# the library never sees these.
|
|
ed25519-dalek = { workspace = true, optional = true }
|
|
rand_core = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
tempfile = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
proptest = { workspace = true }
|
|
criterion = { workspace = true }
|
|
|
|
[[bin]]
|
|
name = "store-crash-driver"
|
|
path = "src/bin/store-crash-driver.rs"
|
|
required-features = ["failpoints", "store-internals", "store-privileged"]
|
|
|
|
[[bin]]
|
|
name = "store-bench"
|
|
path = "src/bin/store-bench.rs"
|
|
required-features = ["bench-harness", "store-internals", "store-privileged"]
|
|
|
|
[[bench]]
|
|
name = "durable_ingest"
|
|
harness = false
|
|
required-features = ["store-internals"]
|