A light-weight, single-purpose library for persistence with bindings to many platforms.

LevelDB (C++)Level (JavaScript)Plyvel (Python)


Sorted by keys

By default, LevelDB stores entries lexicographically sorted by keys. The sorting is one of the main distinguishing features of LevelDB amongst similar embedded data storage libraries and comes in very useful for querying as we’ll see later.

Arbitrary byte arrays

Both keys and values are treated as simple arrays of bytes, so content can be anything from ASCII strings to binary blobs.

Compressed storage

Google’s Snappy compression library is an optional dependency that can decrease the on-disk size of LevelDB stores with minimal sacrifice of speed. Snappy is highly optimized for fast compression and therefore does not provide particularly high compression ratios on common data.

Live Demo



Levelup is a Node.js project that aims to provide a common, portable interface to a multitude of LevelDB forks such as Hyperdex. Check out the many flavours of LevelDB made available though this project.


Most databases are mysterious black-boxes. LevelDB provides a highly transparent, light-weight foundation for you to compose higher-level features on top of.

Embeddable & Networkable

LevelDB is embedded, but can be networked adding protocols such as http, tcp or udp to your process.


LevelDB has a small set of primitives. This allows more complex features such as replication, map-reduce, pub-sub, etc. to be published as modules on package management systems such as npm or clibs . Competition leads to innovation!

Conference Talks


LevelDB (workshop)
Paolo Fragomeni at CampJS (May 23–26th 2014)
LevelDB (sessions and workshops)
Various camp counsellors at NodeConf (July 3rd–6th)
LevelDB + Node.js: A persistance renaissance (workshop)
Paolo Fragomeni at Forward.js (July 24–26th)

Supported platforms




Visit us on irc.freenode.net in ##leveldb.

Do you have a detailed question? Check out Google Groups!

LevelDB LevelUP @leveldb