7 releases (stable)
new 1.4.0 | Dec 4, 2024 |
---|---|
1.3.0 | Nov 15, 2024 |
1.1.1 | Oct 26, 2024 |
1.0.0 | Sep 20, 2024 |
0.0.1 |
|
#382 in Database implementations
2,100 downloads per month
Used in 5 crates
(via lsm-tree)
100KB
2K
SLoC
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.
Features
- 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.
Feature flags
serde
Enables serde
derives.
Disabled by default.
bytes
Uses bytes
as the underlying Slice
type.
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
~3–11MB
~136K SLoC