rocksdb
A Low-level Node.js RocksDB binding
If you are upgrading: please see UPGRADING.md.
rocksdb
is based on the LevelDown code, which was extracted from LevelUP and now serves as a stand-alone binding for LevelDB. The native code in rocksdb
is based on Facebooks fork of LevelDB.
It is strongly recommended that you use LevelUP in preference to rocksdb
unless you have measurable performance reasons to do so. LevelUP is optimised for usability and safety. Although we are working to improve the safety of the rocksdb
interface it is still easy to crash your Node process if you don't do things in just the right way.
Supported Platforms
- Linux (including ARM platforms such as Raspberry Pi and Kindle!)
- Mac OS
- Solaris (SmartOS & Nodejitsu)
- FreeBSD
- Windows
- See installation instructions for node-gyp dependencies here, you'll need these (free) components from Microsoft to compile and run any native Node add-on in Windows.
API
rocksdb
implements the same API of LevelDown.
Getting Support
There are multiple ways you can find help in using LevelDB in Node.js:
- IRC: you'll find an active group of LevelUP users in the ##leveldb channel on Freenode, including most of the contributors to this project.
- Mailing list: there is an active Node.js LevelDB Google Group.
- GitHub: you're welcome to open an issue here on this GitHub repository if you have a question.
Contributing
rocksdb
is an OPEN Open Source Project. This means that:
Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
See the contribution guide for more details.
Windows
A large portion of the Windows support comes from code by Krzysztof Kowalczyk @kjk, see his Windows LevelDB port here. If you're using LevelUP on Windows, you should give him your thanks!
Prebuilt Binaries
rocksdb
uses prebuild
and prebuild-install
for handling prebuilt binaries. See this list of supported prebuilt platform binaries. When installing rocksdb prebuild-install
will install prebuilt binaries from GitHub if they exist and fallback to a compile step if they don't.
If you are working on rocksdb
and want to re-compile the C++ code it's enough to do npm install
.
If you don't want to use the prebuild
for the platform you are installing on, specify the --build-from-source
flag when you install.
License
Copyright © 2012-present rocksdb
contributors.
rocksdb
is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md
file for more details.
rocksdb
builds on the excellent work of the LevelDB and Snappy teams from Google and additional contributors to the LevelDB fork by Facebook. LevelDB and Snappy are both issued under the New BSD Licence.