#persistence #lsm-tree #embedded

mappum-rocksdb

Rust wrapper for Facebook's RocksDB embeddable database

1 unstable release

0.14.0-alpha.1 Jan 18, 2020

#2121 in Database interfaces

Apache-2.0

20MB
420K SLoC

C++ 244K SLoC // 0.1% comments C 95K SLoC // 0.2% comments Java 31K SLoC // 0.4% comments Visual Studio Project 23K SLoC Python 9K SLoC // 0.1% comments Shell 5K SLoC // 0.2% comments Rust 3.5K SLoC // 0.1% comments GNU Style Assembly 2K SLoC // 0.3% comments Ada 1.5K SLoC // 0.2% comments Assembly 1.5K SLoC // 0.2% comments Visual Studio Solution 1K SLoC Pascal 1K SLoC // 0.2% comments C# 878 SLoC // 0.4% comments Bitbake 771 SLoC // 0.1% comments INI 432 SLoC // 0.1% comments PowerShell 312 SLoC // 0.2% comments JavaScript 94 SLoC // 0.1% comments Batch 86 SLoC M4 63 SLoC // 0.1% comments Automake 51 SLoC Bazel 32 SLoC // 0.1% comments ReScript 3 SLoC

rust-rocksdb

Build Status crates.io documentation license Gitter chat

GitHub commits (since latest release)

Requirements

  • Clang and LLVM

Contributing

Feedback and pull requests welcome! If a particular feature of RocksDB is important to you, please let me know by opening an issue, and I'll prioritize it.

Usage

This binding is statically linked with a specific version of RocksDB. If you want to build it yourself, make sure you've also cloned the RocksDB and compression submodules:

git submodule update --init --recursive

Compression Support

By default, support for the Snappy, LZ4, Zstd, Zlib, and Bzip2 compression is enabled through crate features. If support for all of these compression algorithms is not needed, default features can be disabled and specific compression algorithms can be enabled. For example, to enable only LZ4 compression support, make these changes to your Cargo.toml:

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

Dependencies