Level is a Node.js library and community for creating embedded databases - think SQLite, but non relational!
It was first and foremost inspired by LevelDB, a simple key-value store built by Google. It's used in Google Chrome and many other products. LevelDB supports arbitrary byte arrays as both keys and values, singular get, put and delete operations, batched put and delete, bi-directional iterators and simple compression using the very fast Snappy algorithm.
The way you iterate over a LevelDB makes it very usable for a myriad of use cases! LevelDB stores entries sorted lexicographically by keys, which makes the streaming interface of
levelup that exposes LevelDB iterators as Readable Streams a very powerful query mechanism.
It's flexible in another major respect, that is that the underlying storage backends are swappable! The most common store is leveldown which provides a pure C++ binding to LevelDB. Many alternative stores are available such as level.js in the browser or memdown for an in-memory store. They typically support strings and Buffers for both keys and values. For a richer set of data types you can wrap the store with encoding-down.