node package manager

rocksdb

rocksdb

A Low-level Node.js RocksDB binding

level badge npm Node version Travis AppVeyor dependencies npm downloads

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.

Tested & 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

Copyright © 2012-2017 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.