Crates.io | lsm-tree |
lib.rs | lsm-tree |
version | |
source | src |
created_at | 2023-12-10 14:40:11.280192 |
updated_at | 2025-01-08 17:58:23.263585 |
description | A K.I.S.S. implementation of log-structured merge trees (LSM-trees/LSMTs) |
homepage | https://github.com/fjall-rs/lsm-tree |
repository | https://github.com/fjall-rs/lsm-tree |
max_upload_size | |
id | 1064241 |
Cargo.toml error: | TOML parse error at line 24, column 1 | 24 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
A K.I.S.S. implementation of log-structured merge trees (LSM-trees/LSMTs) in Rust.
This crate only provides a primitive LSM-tree, not a full storage engine. For example, it does not ship with a write-ahead log. You probably want to use https://github.com/fjall-rs/fjall instead.
This is the most feature-rich LSM-tree implementation in Rust! It features:
bloom
feature, disabled by default)Keys are limited to 65536 bytes, values are limited to 2^32 bytes. As is normal with any kind of storage engine, larger keys and values have a bigger performance impact.
Allows using LZ4
compression, powered by lz4_flex
.
Disabled by default.
Allows using DEFLATE/zlib
compression, powered by miniz_oxide
.
Disabled by default.
Uses bloom filters to reduce superfluous disk I/O during point reads, improving performance, but also increasing memory usage.
Disabled by default.
Uses bytes
as the underlying Slice
type.
Disabled by default.
The disk format is stable as of 1.0.0.
2.0.0 uses a new disk format and needs a manual format migration.
Future breaking changes will result in a major version bump and a migration path.
cargo bench --features bloom,lz4,miniz
All source code is licensed under MIT OR Apache-2.0.
All contributions are to be licensed as MIT OR Apache-2.0.
[1] https://rocksdb.org/blog/2017/05/12/partitioned-index-filter.html