d648b10e2c
Several options were mistakenly classified as db options when in fact they are column family options - the C interface does not make this distinction and instead puts them all under one umbrella. This PR updates options to use nim setter/getter properties allowing both read and write of most options - lots of options are exposed both for reading and writing, but hey, one could always add _even more_ of them - there's certainly no lack! |
||
---|---|---|
.github/workflows | ||
examples | ||
rocksdb | ||
scripts | ||
tests | ||
triplets | ||
vendor | ||
.gitignore | ||
.gitmodules | ||
LICENSE-APACHEv2 | ||
LICENSE-MIT | ||
README.md | ||
config.nims | ||
nim.cfg | ||
rocksdb.nim | ||
rocksdb.nimble |
README.md
Nim-RocksDB
A Nim wrapper for Facebook's RocksDB, a persistent key-value store for Flash and RAM Storage.
Current status
Nim-RocksDB provides a wrapper for the low-level functions in the librocksdb c library.
Requirements
A RocksDB installation that provides librocksdb.so
. This means that on Debian, and possibly on other Linux distros, you need "librocksdb-dev", not just a versioned "librocksdbX.Y" package that only provides librocksdb.so.X.Y.Z
.
Usage
See simple_example
Static linking
To statically link librocksdb, you would do something like:
nim c -d:rocksdb_static_linking --threads:on your_program.nim
See the config.nims file which contains the static linking configuration which is switched on with the rocksdb_static_linking
flag. Note that static linking is currently not supported on windows.
Building Windows DLLs
Prerequisites:
- Windows 7 or newer
- Git
- Visual Studio 2015 Update 3 or greater with the English language pack
To build RocksDB for Windows, run the following:
.\scripts\build_dlls_windows.bat
After the build completes the built RocksDB DLLs will be located in the build
directory.
Contribution
Any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.
License
Wrapper License
This repository is licensed and distributed under either of
- MIT license: LICENSE-MIT or http://opensource.org/licenses/MIT
or
- Apache License, Version 2.0, (LICENSE-APACHEv2 or http://www.apache.org/licenses/LICENSE-2.0)
at your option. This file may not be copied, modified, or distributed except according to those terms.
Dependency License
RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB by Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com)
RocksDB is dual-licensed under both the GPLv2 and Apache License, Version 2.0, (LICENSE-APACHEv2 or http://www.apache.org/licenses/LICENSE-2.0). You may select, at your option, one of the above-listed licenses.