[package]
name = "stemedb-storage"
version = "0.1.0"
edition = "2021"
description = "Storage engine abstraction and implementations for Episteme"

# Inherit workspace lints
[lints]
workspace = true

[dependencies]
stemedb-core = { path = "../stemedb-core" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
fjall = "2"
redb = "2"
dashmap = "6"
tempfile = "3.10"
thiserror = "1.0"
tracing = "0.1"
async-trait = "0.1"
blake3 = "1.5"
hex = "0.4"
memchr = "2"
metrics = "0.23"
rkyv = { version = "0.7", features = ["validation"] }
# HNSW vector index for k-NN similarity search
hnsw_rs = "0.3"
# Thread-safe read-write locks for index access
parking_lot = "0.12"
tokio = { version = "1", features = ["sync", "rt", "time"] }
# Memory-mapped files for cold index persistence
memmap2 = "0.9"
# Fast CRC32C checksums (hardware-accelerated on x86)
crc32c = "0.6"
# Byte order encoding for checkpoint format
byteorder = "1.5"
# Graph data structures for EigenTrust trust graph
petgraph = "0.6"
# Linear algebra for EigenTrust power iteration
nalgebra = "0.33"
# Bloom filter for fast duplicate detection (Content Defense Phase 7C)
bloomfilter = "1.0"

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread"] }
criterion = { version = "0.5", features = ["html_reports", "async_tokio"] }
proptest = "1.4"

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