Search

Lib.rs

› Database implementations | Data structures
#key-value #database #lsm #blobdb #wisckey

value-log

Value log implementation for key-value separated LSM storage

by Marvin and 2 contributors

  • Install
  • API reference
  • GitHub repo (fjall-rs)
  • Home (github.io)

19 stable releases

1.9.0 Apr 19, 2025
1.8.0 Mar 29, 2025
1.5.5 Feb 21, 2025
1.4.0 Dec 4, 2024
0.0.1 Mar 12, 2024

#144 in Database implementations

Download history 3080/week @ 2026-01-01 3351/week @ 2026-01-08 4904/week @ 2026-01-15 5015/week @ 2026-01-22 3946/week @ 2026-01-29 2770/week @ 2026-02-05 2250/week @ 2026-02-12 1948/week @ 2026-02-19 2483/week @ 2026-02-26 4610/week @ 2026-03-05 4668/week @ 2026-03-12 2419/week @ 2026-03-19 3124/week @ 2026-03-26 3006/week @ 2026-04-02 3093/week @ 2026-04-09 3197/week @ 2026-04-16

12,954 downloads per month

MIT/Apache

110KB
2.5K SLoC

docs.rs Crates.io MSRV dependency status

Generic value log implementation for key-value separated storage, inspired by RocksDB's BlobDB [1] and Titan [2] and implemented in safe, stable Rust.

[!NOTE] 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.

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

[1] https://github.com/facebook/rocksdb/wiki/BlobDB

[2] https://docs.pingcap.com/tidb/stable/titan-overview/

Dependencies

~2.1–7.5MB
~165K SLoC

  • byteorder
  • optional bytes
  • byteview 0.6.1
  • interval-heap
  • log
  • path-absolutize
  • rustc-hash 2.0
  • optional serde+derive
  • tempfile
  • varint-rs
  • xxhash-rust+xxh3
  • dev criterion 0.5.1
  • dev half =2.4.0
  • dev lz4_flex 0.11.3
  • dev rand 0.9
  • dev test-log
Related: byteview, lsm-tree, fjall
See also: redb, lsmlite-rs, fastskip, denokv_remote, rusty-leveldb, persy, skl, rawsql, leveldb, indxdb, valog

Lib.rs is an unofficial list of Rust/Cargo crates, created by kornelski. It contains data from multiple sources, including heuristics, and manually curated data. Content of this page is not necessarily endorsed by the authors of the crate. This site is not affiliated with nor endorsed by the Rust Project. If something is missing or incorrect, please file a bug.