wombatkv-node 0.1.0-alpha.pre1.0

High-level WombatKV node API, store + lookup + touch + foyer-backed local cache. The Rust surface that wombatkv-cabi wraps for C/C++ engines (ds4, llama.cpp, custom).
Documentation
[package]
name = "wombatkv-node"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
rust-version.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
keywords.workspace = true
categories.workspace = true
description = "High-level WombatKV node API, store + lookup + touch + foyer-backed local cache. The Rust surface that wombatkv-cabi wraps for C/C++ engines (ds4, llama.cpp, custom)."
documentation = "https://docs.rs/wombatkv-node"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
wombatkv-core   = { path = "../wombatkv-core",   version = "0.1.0-alpha.pre1.0" }
wombatkv-format = { path = "../wombatkv-format", version = "0.1.0-alpha.pre1.0" }
wombatkv-radix  = { path = "../wombatkv-radix",  version = "0.1.0-alpha.pre1.0" }
wombatkv-store  = { path = "../wombatkv-store",  version = "0.1.0-alpha.pre1.0" }

# Foyer hybrid memory + disk cache (opt-in via WMBT_KV_PUFFER_BACKEND=foyer).
bytes = "1"
foyer = "0.22"
once_cell = "1"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }
twox-hash = "1"
blake3 = "1"

# rkyv 0.8 for the chunked-manifest on-wire format (RFC 0008 ยง4e). The
# `bytecheck` feature gates `rkyv::access::<Archived<T>>` so a malformed
# manifest fails validation up-front instead of producing a torn read on
# the zero-copy path. Pinned to the workspace pin used by wombatkv-daemon
# so we don't accidentally diverge on the archived layout.
rkyv = { version = "0.8", features = ["bytecheck"] }

# zstd for transparent block-storage compression (`crate::compression`).
# Driven by the `WMBT_KV_BLOCK_COMPRESS` env var (default off). Pinned
# to the same major as wombatkv-format so we don't pull a second
# zstd-sys build.
zstd = { version = "0.13", default-features = false }

# Deterministic-simulation-testing primitives. Optional, gated on
# `dst` feature. In non-DST builds the dep is not compiled and all
# buggify/assert call sites compile away.
wombatkv-dst = { path = "../wombatkv-dst", version = "0.1.0-alpha.pre1.0", optional = true }

[features]
default = []
# Enables DST chaos sites (buggify) + invariant assertions across
# the wombatkv-node prod paths. Activate with:
#     cargo build -p wombatkv-node --features dst
# and runtime gating via WMBT_KV_DST_BUGGIFY env var (see wombatkv-dst docs).
dst = ["dep:wombatkv-dst"]

[dev-dependencies]
bincode = "1"
serde = { version = "1", features = ["derive"] }
tempfile = "3"

[lints]
workspace = true