A simple, humane, typed key-value storage solution.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nan Jiang 911d75d837 run examples in travis 6 years ago
examples enable rustfmt 6 years ago
src enable rustfmt 6 years ago
tests enable rustfmt 6 years ago
.appveyor.yml add appveyor for CI on windows 6 years ago
.gitignore Initial commit. 6 years ago
.rustfmt.toml enable rustfmt 6 years ago
.travis.yml run examples in travis 6 years ago
Cargo.toml workaround unc path on windows 6 years ago
LICENSE Initial commit. 6 years ago
README.md enable rustfmt 6 years ago
run-all-examples.sh run examples in travis 6 years ago

README.md

rkv

rkv is a usable Rust wrapper around LMDB.

It aims to achieve the following:

  • Avoid LMDB's sharp edges (e.g., obscure error codes for common situations).
  • Report errors via failure.
  • Correctly restrict to one handle per process via a 'manager'.
  • Use Rust's type system to make single-typed key stores (including LMDB's own integer-keyed stores) safe and ergonomic.
  • Encode and decode values via bincode/serde and type tags, achieving platform-independent storage and input/output flexibility.

Feature choices

If you specify the backtrace feature, backtraces will be enabled in failure errors. This feature is disabled by default.

Contributing

rkv relies on the latest rustfmt for code formatting, please make sure your pull request passes the rustfmt before submitting it for review. See rustfmt's quick start for installation details.