[package]
name = "kimberlite-storage"
description = "Append-only segment storage for Kimberlite"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[lints]
workspace = true

[dependencies]
kimberlite-types.workspace = true
kimberlite-crypto.workspace = true
bytes.workspace = true
thiserror.workspace = true
tracing.workspace = true
serde.workspace = true
serde_json.workspace = true
lz4_flex.workspace = true
zstd.workspace = true

# Simulation instrumentation (optional)
# NOTE: Temporarily commented out for crates.io publication
# kimberlite-sim has publish = false so cannot be a dependency
# kimberlite-sim = { workspace = true, optional = true }
# kimberlite-sim-macros = { workspace = true, optional = true }
kimberlite-properties.workspace = true

[features]
sim = ["kimberlite-properties/sim"]
# Adds `Storage::reset` for persistent-mode fuzzing. MUST NOT be
# enabled in production builds — reset wipes all persisted data.
fuzz-reset = []

[dev-dependencies]
proptest.workspace = true
test-case.workspace = true
tempfile.workspace = true
