#lsm-tree #persistence #embedded

bijou-rocksdb

Rust语言的Facebook RocksDB嵌入式数据库封装

2个版本

0.21.1 2023年10月13日
0.21.0 2023年9月30日

#1129数据库接口


2 个Crates中使用(通过 bijou

Apache-2.0

450KB
8K SLoC

rust-rocksdb

这是对 rust-rocksdb 的分支。

RocksDB build crates.io documentation license Gitter chat rust 1.63.0 required

GitHub commits (since latest release)

要求

  • Clang和LLVM

贡献

欢迎反馈和pull requests!如果您觉得RocksDB的某个特性很重要,请通过创建issue告诉我,我会优先考虑。

用法

此绑定与RocksDB的特定版本静态链接。如果您想自己构建它,请确保您已克隆了RocksDB和压缩子模块

git submodule update --init --recursive

压缩支持

默认情况下,通过crate特性启用了对SnappyLZ4ZstdZlibBzip2压缩的支持。如果不需要所有这些压缩算法的支持,可以禁用默认特性并启用特定的压缩算法。例如,要仅启用LZ4压缩支持,请在Cargo.toml中进行以下更改

[dependencies.rocksdb]
default-features = false
features = ["lz4"]

多线程ColumnFamily切换

底层的RocksDB确实允许从多个线程同时创建和删除列族。但此crate默认不允许这样做以保持兼容性。如果您需要并发修改列族,请启用名为multi-threaded-cf的crate特性,这将使此绑定默认使用RwLock。或者,您可以直接创建DBWithThreadMode<MultiThreaded>而无需启用crate特性。

依赖

~21MB
~446K SLoC