[package] name = "commonware-storage" edition.workspace = true publish = true version.workspace = true license.workspace = true description = "Persist and retrieve data from an abstract store." readme = "README.md" homepage.workspace = true repository = "https://github.com/commonwarexyz/monorepo/tree/main/storage" documentation = "https://docs.rs/commonware-storage" [lints] workspace = true [dependencies] anyhow.workspace = true arbitrary = { workspace = true, optional = true, features = ["derive"] } bytes = { workspace = true, default-features = false } cfg-if.workspace = true commonware-codec = { workspace = true, default-features = false } commonware-cryptography = { workspace = true, default-features = false } commonware-macros.workspace = true commonware-runtime = { workspace = true, optional = true } commonware-utils = { workspace = true, default-features = false } crc32fast = { workspace = true, optional = true } futures = { workspace = true, optional = true } futures-util = { workspace = true, optional = true } prometheus-client = { workspace = true, optional = true } rayon = { workspace = true, optional = true } thiserror.workspace = true tracing = { workspace = true, optional = true } zstd = { workspace = true, optional = true } [dev-dependencies] commonware-conformance.workspace = true commonware-math.workspace = true commonware-storage = { path = ".", features = ["std"] } criterion.workspace = true rand.workspace = true rstest.workspace = true tracing-subscriber.workspace = true [features] default = [ "std" ] std = [ "anyhow/std", "bytes/std", "commonware-codec/std", "commonware-cryptography/std", "commonware-runtime", "commonware-utils/std", "crc32fast/std", "futures", "futures-util", "prometheus-client", "rayon", "thiserror/std", "tracing", "zstd", ] arbitrary = [ "commonware-codec/arbitrary", "commonware-cryptography/arbitrary", "commonware-utils/arbitrary", "dep:arbitrary", ] fuzzing = [] [lib] bench = false crate-type = ["rlib", "cdylib"] [[bench]] name = "qmdb" harness = false path = "src/qmdb/benches/bench.rs" [[bench]] name="archive" harness = false path = "src/archive/benches/bench.rs" [[bench]] name="bmt" harness = false path = "src/bmt/benches/bench.rs" [[bench]] name="freezer" harness = false path = "src/freezer/benches/bench.rs" [[bench]] name="index" harness = false path = "src/index/benches/bench.rs" [[bench]] name="journal" harness = false path = "src/journal/benches/bench.rs" [[bench]] name="mmr" harness = false path = "src/mmr/benches/bench.rs" [[bench]] name="ordinal" harness = false path = "src/ordinal/benches/bench.rs" [[bench]] name="metadata" harness = false path = "src/metadata/benches/bench.rs" [[bench]] name="rmap" harness = false path = "src/rmap/benches/bench.rs"