Generic value log implementation for key-value separated storage, inspired by RocksDB's BlobDB [1] and Titan [2] and implemented in safe, stable Rust.
This crate is intended as a building block for key-value separated storage. You probably want to use https://github.com/fjall-rs/fjall instead.
- Thread-safe API
- 100% safe & stable Rust
- Supports generic KV-index structures (LSM-tree, ...)
- Generic per-blob compression (optional)
- In-memory blob cache for hot data (can be shared between multiple value logs to cap memory usage)
- On-line garbage collection
Keys are limited to 65536 bytes, values are limited to 2^32 bytes.
Enables serde
derives.
Disabled by default.
Uses bytes
as the underlying Slice
type.
Disabled by default.
The disk format is stable as of 1.0.0. Future breaking changes will result in a major version bump and a migration path.
All source code is licensed under MIT OR Apache-2.0.
All contributions are to be licensed as MIT OR Apache-2.0.