3 releases (1 unstable)
1.0.0-pre.1 | Jun 11, 2024 |
---|---|
0.0.1 | Mar 12, 2024 |
#343 in Database implementations
78KB
1.5K
SLoC
Generic value log implementation for key-value separated storage, inspired by RocksDB's BlobDB [1] 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.
Features
- Thread-safe API
- 100% safe & stable Rust
- Supports generic KV-index structures (LSM-tree, ...)
- Built-in per-blob compression (LZ4, Miniz) (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.
Feature flags
lz4
Allows using LZ4
compression, powered by lz4_flex
.
Disabled by default.
miniz
Allows using DEFLATE/zlib
compression, powered by miniz_oxide
.
Disabled by default.
serde
Enables serde
derives.
Disabled by default.
Stable disk format
The disk format is stable as of 1.0.0. Future breaking changes will result in a major version bump and a migration path.
License
All source code is licensed under MIT OR Apache-2.0.
All contributions are to be licensed as MIT OR Apache-2.0.
Footnotes
Dependencies
~4–13MB
~157K SLoC