value-log

Crates.iovalue-log
lib.rsvalue-log
version1.1.1
sourcesrc
created_at2024-03-12 19:42:24.836005
updated_at2024-10-26 21:06:53.817708
descriptionValue log implementation for key-value separated LSM storage
homepagehttps://github.com/fjall-rs/value-log
repositoryhttps://github.com/fjall-rs/value-log
max_upload_size
id1170927
size105,151
Marvin (marvin-j97)

documentation

README

CI 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.

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.

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

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

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

Commit count: 168

cargo fmt