Neutral Political Machine

    rocksdb
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/rocksdb package

    5.2.1 • Public • Published

    rocksdb

    A low-level Node.js RocksDB binding. An abstract-leveldown compliant store.

    level badge npm Node version Test Coverage Standard Common Changelog Donate

    Table of Contents

    Click to expand

    Introduction

    This module closely follows leveldown and implements the same API. The difference is that leveldown is a binding for LevelDB while rocksdb is a binding for RocksDB, Facebook's 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 optimized 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.

    If you are upgrading: please see UPGRADING.md.

    Supported Platforms

    We aim to support at least Active LTS and Current Node.js releases, Electron 5.0.0, as well as any future Node.js and Electron releases thanks to N-API. The minimum node version for rocksdb is 10.12.0.

    The rocksdb npm package ships with prebuilt binaries for popular 64-bit platforms and is known to work on:

    • Linux (including ARM platforms such as Raspberry Pi and Kindle)
    • Mac OS
    • Solaris (SmartOS & Nodejitsu)
    • FreeBSD
    • Windows

    When installing rocksdb, node-gyp-build will check if a compatible binary exists and fallback to a compile step if it doesn't. In that case you'll need a valid node-gyp installation.

    If you don't want to use the prebuilt binary for the platform you are installing on, specify the --build-from-source flag when you install. If you are working on rocksdb itself and want to re-compile the C++ code it's enough to do npm install.

    API

    Please refer to leveldown for API documentation. The db.open(options, callback) method of rocksdb has a few additional options:

    • readOnly (boolean, default false): open database in read-only mode.
    • infoLogLevel (string, default null): verbosity of info log. One of 'debug', 'info', 'warn', 'error', 'fatal', 'header' or null (disable).

    Contributing

    Level/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.

    Git Submodules

    This project uses Git Submodules. This means that you should clone it recursively if you're planning on working on it:

    $ git clone --recurse-submodules https://github.com/Level/rocksdb.git

    Alternatively, you can initialize submodules after cloning:

    $ git submodule update --init --recursive

    Publishing

    1. Increment the version: npm version ..
    2. Push to GitHub: git push --follow-tags
    3. Wait for CI to complete
    4. Download prebuilds into ./prebuilds: npm run download-prebuilds
    5. Optionally verify loading a prebuild: npm run test-prebuild
    6. Optionally verify which files npm will include: canadian-pub
    7. Finally: npm publish

    Donate

    Support us with a monthly donation on Open Collective and help us continue our work.

    License

    MIT

    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 License. A large portion of rocksdb Windows support comes from the Windows LevelDB port (archived) by Krzysztof Kowalczyk (@kjk). If you're using rocksdb on Windows, you should give him your thanks!

    Keywords

    Install

    npm i rocksdb

    DownloadsWeekly Downloads

    2,219

    Version

    5.2.1

    License

    MIT

    Unpacked Size

    42.3 MB

    Total Files

    1088

    Last publish

    Collaborators

    • vweevers
    • matteo.collina
    • rvagg
    • ralphtheninja