#rocksdb #bindings #ffi #native-bindings

sys librocksdb-sysx

librocksdb的本地绑定

1 个不稳定版本

0.8.0+7.4.4 2022年10月28日

51#rocksdb

每月34次下载
用于 rocksdbx

MIT/Apache-2.0/BSD-3-Clause

19MB
394K SLoC

C++ 340K SLoC // 0.1% comments Java 37K SLoC // 0.3% comments Python 7.5K SLoC // 0.1% comments Shell 4K SLoC // 0.2% comments C 2.5K SLoC // 0.0% comments GNU Style Assembly 543 SLoC // 0.1% comments Rust 391 SLoC // 0.1% comments PowerShell 370 SLoC // 0.2% comments INI 324 SLoC // 0.1% comments Bitbake 168 SLoC // 0.2% comments

rust-rocksdb

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

GitHub commits (since latest release)

要求

  • Clang和LLVM

贡献

欢迎反馈和拉取请求!如果您对RocksDB的某个特性很重要,请通过创建一个issue让我知道,我会将其优先处理。

用法

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

git submodule update --init --recursive

压缩支持

默认情况下,通过crate功能启用对Snappy、LZ4、Zstd、Zlib和Bzip2压缩的支持。如果不需要所有这些压缩算法的支持,可以禁用默认功能并启用特定的压缩算法。例如,要仅启用LZ4压缩支持,请在Cargo.toml中做出以下更改

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

多线程ColumnFamily切换

RocksDB允许在多个线程中同时创建和删除列族,但此crate默认不支持,以保持兼容性。如果您需要并发修改列族,请启用crate功能multi-threaded-cf,这将使此绑定使用默认的RwLock数据结构。或者,您可以直接创建DBWithThreadMode<MultiThreaded>,而不启用crate功能。

在/MT或/MD运行时库之间切换(仅限Windows)

功能mt_static将请求使用/MT标志构建库,这将导致库使用运行时库的静态版本。这在依赖树中存在不同运行时版本冲突的情况下可能很有用。

依赖项

~0–4MB
~72K SLoC