An open list of awesome Level libraries and resources.
Clone or download

README.md

Awesome Level level badge

An open list of awesome Level modules and resources. Add yours!

Table of Contents

Click to expand

Bundles

Convenience modules that bundle a store with levelup and encoding-down.

Name Compatibility Dependencies Description
level levelup dependencies Bundle for leveldown.
Main entry point for beginners.
level-mem levelup dependencies Bundle for memdown.
level-rocksdb levelup dependencies Bundle for rocksdb.
level-browserify levelup dependencies Bundle for level-js and leveldown.
Will soon be superseded by the level bundle.
level-hyper levelup dependencies Bundle for leveldown-hyper.

Core

Name Dependencies Description
levelup dependencies The glue that holds everything together.
Use this when you need a custom or swappable store.
abstract-leveldown dependencies An abstract prototype matching the leveldown API.
Use this to implement your own store.
level-packager dependencies Package helper to export a bundle.
Use this to create a new level-* bundle.

Stores

Modules that implement abstract-leveldown as storage for levelup.

Name Compatibility Dependencies Type
leveldown abstract-leveldown dependencies LevelDB
memdown abstract-leveldown dependencies In-memory RBTree
level-js abstract-leveldown dependencies IndexedDB
rocksdb abstract-leveldown dependencies RocksDB
leveldown-hyper abstract-leveldown dependencies HyperLevelDB
medeadown abstract-leveldown dependencies medea
jsondown abstract-leveldown dependencies JSON on disk
asyncstorage-down abstract-leveldown dependencies AsyncStorage (React Native)
mongodown abstract-leveldown dependencies MongoDB
sqldown abstract-leveldown dependencies sqlite3, pg, mysql, WebSQL
dynamo-down abstract-leveldown dependencies AWS DynamoDB
azureleveldown abstract-leveldown dependencies Windows Azure Table Storage
fruitdown abstract-leveldown dependencies IndexedDB (Apple)
localstorage-down abstract-leveldown dependencies localStorage
riakdown abstract-leveldown dependencies riakpbc
mysqldown abstract-leveldown dependencies MySQL
redisdown abstract-leveldown dependencies Redis
leveldown-basho abstract-leveldown dependencies Basho's LevelDB fork
sheet-down abstract-leveldown dependencies Google Sheets

Layers

Modules that implement abstract-leveldown to wrap another abstract-leveldown. This is the preferred extension point.

Name Compatibility Dependencies Description
encoding-down abstract-leveldown dependencies Provides key/value encoding.
@adorsys/encrypt-down abstract-leveldown dependencies Provides encryption for values.
deferred-leveldown abstract-leveldown dependencies Handles delayed-open. Built into levelup.
subleveldown abstract-leveldown
levelup
dependencies Sublevels implemented using leveldowns.
cachedown abstract-leveldown dependencies LRU cache.

Databases

Complete Node.js databases built with Level.

Name Dependencies Description
dat dependencies Lets you build streaming data pipelines that can be shared and replicated by others.
pouchdb dependencies PouchDB allows you to store and query data offline and then sync with CouchDB when online. For Node, browser and mobile.
couchup dependencies A CouchDB implementation on top of levelup.
firedup dependencies A node.js implementation of firebase based on levelup.
len dependencies Len is a resource booking database using LevelDB for storage. Useful for calendar and gantt chart apps and for questions like 'can a customer book this resource starting X and ending Y'.
lem dependencies Lem is a telemetry storage database using LevelDB. Keys are indexed by timestamp and you can read values in-between 2 points in time.
levelgraph dependencies A Graph database built on top of levelup with pattern-matching and join support.
linvodb3 dependencies Persistent database on top of levelup for Node.js/NW.js with MongoDB-style queries, Mongoose-like models and a map/reduce system.
plumbdb dependencies HTTP request handlers for building web services on top of LevelDB. Not in active development.
rxdb dependencies Event-driven database based on pouchdb. Optimized for reactive programming with observables. Events and state is automatically shared between multiple browser tabs. Queries are defined by the mongoDB mango-standard.
pushdb dependencies A programmable database with document storage and unique indexing capabilities.
search-index dependencies A persistent full text search engine for browser and Node.js.
tacodb dependencies A responsive, Node.js-style database ideal for realtime data. Highly modular and adaptable, allowing extension with the Level ecosystem.
timestreamdb dependencies A full-featured timeseries database on top of LevelDB. Includes a library for streaming statistical operations on timeseries data including joins, aggregates, filters, and map-like operations.
nanosql dependencies A small (10Kb) RDBMS abstraction on top of levelup that also runs in the browser with undo/redo support, immutable objects and IndexedDB persistence.
vertical dependencies LevelDB distributed, Server and Client!
flash-store dependencies FlashStore is a Key-Value persistent storage with easy to use ES6 Map-like API(both Async and Sync support), powered by LevelDB and TypeScript.
level-fact-base dependencies Store immutable facts and query them with datalog.

Replication

Name Dependencies Description
level-2pc dependencies A two-phase commit protocol.
level-couch-sync dependencies Replicate from CouchDB to LevelDB.
level-master dependencies Master-Slave replication for levelup.
level-merkle dependencies Uses merkle-trees to replicate data sets. Data must be sets and currently, deletes are not supported.
level-replicate dependencies Master-master replication with levelup. Implements scuttlebutt style handshake, syncs data, then replicates real time changes.
level-replicator dependencies Master-master replication. Same goal as level-replicate but different approach.

Plugins for levelup

Modules that add functionality to levelup.

Name Dependencies Description
levelup-async-iterator dependencies Expose iterator() with Symbol.asyncIterator.
cluster-levelup dependencies Wrap any levelup instance for cluster usage among multiple processes.
level-ttl dependencies Add a ttl (time-to-live) option to levelup for put() and batch().
Note: suffers from race issues.

Utilities

Name Dependencies Description
level-iterator-stream dependencies Turn an abstract-leveldown iterator into a readable stream.
Included in levelup.
level-concat-iterator dependencies Concatenate items from an iterator into an array.
level-codec dependencies Encode keys, values and ltgte options. Used in encoding-down.
level-errors dependencies Error types for levelup.
level-test dependencies Easily run your level-* tests against all stores.
lev2 dependencies A complete REPL & CLI for managing LevelDB instances
level-ws dependencies A basic WriteStream implementation for levelup.
level-lazy-open dependencies Lazily open a leveldown compatible backend.

Resources

Name Description
leveldb.org Website for LevelDB
level-community General discussion, cross-repo efforts and common information for projects in the community
level-awesome An open list of awesome Level libraries and resources.

Contributing

Module and resource authors are welcome and encouraged to add an entry for their work via a pull request. To add a module, edit modules/*.json and run npm run awesome to update README.md.

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

Donate

To sustain Level and its activities, become a backer or sponsor on Open Collective. Your logo or avatar will be displayed on our 28+ GitHub repositories, npm packages and (soon) our website. 💖

Backers

Open Collective backers

Sponsors

Open Collective sponsors

License

MIT © 2017-present Contributors.