Skip to content

extremeheat/node-leveldb-zlib

Repository files navigation

node-leveldb-zlib

NPM version Build Status Discord Try it on gitpod

LevelDB bindings for Node.js with zlib compression, with a modern promise-based API that actually builds! 🌊

Install

npm install leveldb-zlib

Prebuilds are provided for 64-bit Windows 10, Linux and macOS Catalina. If a prebuild does not work, please create an issue and set enviornment variable FORCE_BUILD to force a manual build.

Usage

Some example usage to create a new Key-Value database and save once you're done. The API is very similar to leveldown.

const { LevelDB } = require('leveldb-zlib')

const db = new LevelDB(pathToDb, { createIfMissing: true })
await db.open() // Make sure to wait for DB to open!
await db.put("Key", "Value")
const val = await db.getAsString("Key")
console.assert("Value" == val)
await db.close() // Make sure to save and close when you're done!

Cloning

If cloning from git, you must clone this repo recursively.

git clone --recursive https://github.com/extremeheat/node-leveldb-zlib

Dependencies

For the most part, pre-builds are provided so you don't need to worry about having the correct build tools installed. But if a pre-build doesn't work, you may need to install the following deps:

Linux:

sudo apt-get install libz-dev

Windows: zlib is packaged inside the repo. You do not need any extra dependencies.

Mac OS: You need to install xcode utilities first (this is not the whole Xcode!):

xcode-select --install

vcpkg

You can also use vcpkg to manage your C++ dependencies. If you don't already have vcpkg installed, install it with the steps at https://github.com/microsoft/vcpkg/#getting-started.

In vcpkg, install zlib: run vcpkg install zlib

Then set environment variable DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake.

API

See API.md