https://github.com/Level/awesome
An open list of awesome Level modules and resources.
https://github.com/Level/awesome
List: awesome
awesome awesome-list javascript level leveldb levelup nodejs
Last synced: over 1 year ago
JSON representation
An open list of awesome Level modules and resources.
- Host: GitHub
- URL: https://github.com/Level/awesome
- Owner: Level
- License: mit
- Created: 2017-09-14T10:08:44.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-11-01T19:20:23.000Z (over 2 years ago)
- Last Synced: 2024-10-30T00:00:36.051Z (over 1 year ago)
- Topics: awesome, awesome-list, javascript, level, leveldb, levelup, nodejs
- Language: JavaScript
- Homepage:
- Size: 173 KB
- Stars: 290
- Watchers: 17
- Forks: 22
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- ultimate-awesome - awesome - An open list of awesome Level modules and resources. (Other Lists / TeX Lists)
- awesome-starred - Level/awesome - An open list of awesome Level modules and resources. (awesome-list)
README
# Awesome
**An open list of awesome [Level][level-org] modules and resources. [Add yours!](#contributing)**
[![level badge][level-badge]](https://github.com/level/awesome)
[](https://github.com/Level/awesome/actions/workflows/test.yml)
[](https://opencollective.com/level)
## Table of Contents
Click to expand
- [Core](#core)
- [Storage](#storage)
- [Encodings](#encodings)
- [Streams](#streams)
- [Shared Access](#shared-access)
- [Processing](#processing)
- [Databases](#databases)
- [Data Structures](#data-structures)
- [Transience](#transience)
- [Atomicity](#atomicity)
- [Jobs](#jobs)
- [File System](#file-system)
- [Utilities](#utilities)
- [Replication](#replication)
- [Tools](#tools)
- [Benchmarking & Debugging](#benchmarking--debugging)
- [Resources](#resources)
- [Applications](#applications)
- [Legacy](#legacy)
- [Contributing](#contributing)
- [License](#license)
## Core
### [`abstract-level`][abstract-level]
[](https://www.npmjs.com/package/abstract-level) [](https://www.npmjs.com/package/abstract-level) [](https://www.npmjs.com/package/abstract-level) [](https://github.com/Level/abstract-level) [](https://github.com/Level/abstract-level/graphs/contributors)
Abstract class for a lexicographically sorted key-value database.
## Storage
**Modules that implement [`abstract-level`][abstract-level].**
### [`level`][level]
[](https://www.npmjs.com/package/level) [](https://www.npmjs.com/package/level) [](https://www.npmjs.com/package/level) [](https://github.com/Level/level) [](https://github.com/Level/level/graphs/contributors) 
Universal [`abstract-level`][abstract-level] database for Node.js and browsers. Main entry point for beginners.
### [`classic-level`][classic-level]
[](https://www.npmjs.com/package/classic-level) [](https://www.npmjs.com/package/classic-level) [](https://www.npmjs.com/package/classic-level) [](https://github.com/Level/classic-level) [](https://github.com/Level/classic-level/graphs/contributors) 
An [`abstract-level`][abstract-level] database backed by LevelDB.
### [`browser-level`][browser-level]
[](https://www.npmjs.com/package/browser-level) [](https://www.npmjs.com/package/browser-level) [](https://www.npmjs.com/package/browser-level) [](https://github.com/Level/browser-level) [](https://github.com/Level/browser-level/graphs/contributors) 
An [`abstract-level`][abstract-level] database for browsers, backed by IndexedDB.
### [`memory-level`][memory-level]
[](https://www.npmjs.com/package/memory-level) [](https://www.npmjs.com/package/memory-level) [](https://www.npmjs.com/package/memory-level) [](https://github.com/Level/memory-level) [](https://github.com/Level/memory-level/graphs/contributors) 
In-memory [`abstract-level`][abstract-level] database for Node.js and browsers.
## Encodings
```js
// Example of a custom encoding
const { Level } = require('level')
const charwise = require('charwise')
const db = new Level('./db', {
keyEncoding: charwise
})
await db.put(['users', 2], 'example')
```
### [`protocol-buffers`][protocol-buffers]
[](https://www.npmjs.com/package/protocol-buffers) [](https://www.npmjs.com/package/protocol-buffers) [](https://www.npmjs.com/package/protocol-buffers) [](https://github.com/mafintosh/protocol-buffers) [](https://github.com/mafintosh/protocol-buffers/graphs/contributors)
[Protocol Buffers](https://developers.google.com/protocol-buffers/) for Node.js. Compiled messages are valid as encodings.
### [`charwise`][charwise]
[](https://www.npmjs.com/package/charwise) [](https://www.npmjs.com/package/charwise) [](https://www.npmjs.com/package/charwise) [](https://github.com/dominictarr/charwise) [](https://github.com/dominictarr/charwise/graphs/contributors)
Encode / decode with same encoded sort order as [`bytewise`][bytewise].
### [`bytewise`][bytewise]
[](https://www.npmjs.com/package/bytewise) [](https://www.npmjs.com/package/bytewise) [](https://www.npmjs.com/package/bytewise) [](https://github.com/deanlandolt/bytewise) [](https://github.com/deanlandolt/bytewise/graphs/contributors)
Binary serialization which sorts bytewise for arbitrarily complex data structures. NB. Use [`charwise`][charwise] if possible. Gives you almost everything `bytewise` does but much faster.
### [`lexicographic-integer-encoding`][lexicographic-integer-encoding]
[](https://www.npmjs.com/package/lexicographic-integer-encoding) [](https://www.npmjs.com/package/lexicographic-integer-encoding) [](https://www.npmjs.com/package/lexicographic-integer-encoding) [](https://github.com/vweevers/lexicographic-integer-encoding) [](https://github.com/vweevers/lexicographic-integer-encoding/graphs/contributors)
Wraps [`lexicographic-integer`](https://github.com/substack/lexicographic-integer).
## Streams
**[Node.js stream](https://nodejs.org/api/stream.html), [Web Streams](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) or [`pull-stream`](https://github.com/pull-stream/pull-stream) implementations for reading and writing data from/to databases.**
### [`level-read-stream`][level-read-stream]
[](https://www.npmjs.com/package/level-read-stream) [](https://www.npmjs.com/package/level-read-stream) [](https://www.npmjs.com/package/level-read-stream) [](https://github.com/Level/read-stream) [](https://github.com/Level/read-stream/graphs/contributors)
Read from an [`abstract-level`][abstract-level] database using Node.js streams.
### [`level-web-stream`][level-web-stream]
[](https://www.npmjs.com/package/level-web-stream) [](https://www.npmjs.com/package/level-web-stream) [](https://www.npmjs.com/package/level-web-stream) [](https://github.com/Level/web-stream) [](https://github.com/Level/web-stream/graphs/contributors)
Read from an [`abstract-level`][abstract-level] database using Web Streams.
### [`level-ws`][level-ws]
[](https://www.npmjs.com/package/level-ws) [](https://www.npmjs.com/package/level-ws) [](https://www.npmjs.com/package/level-ws) [](https://github.com/Level/level-ws) [](https://github.com/Level/level-ws/graphs/contributors)
A basic writable stream for [`abstract-level`][abstract-level] databases, using Node.js core streams. Has not been updated for `abstract-level` 2 yet (to use the promise API).
## Shared Access
### [`many-level`][many-level]
[](https://www.npmjs.com/package/many-level) [](https://www.npmjs.com/package/many-level) [](https://www.npmjs.com/package/many-level) [](https://github.com/Level/many-level) [](https://github.com/Level/many-level/graphs/contributors) 
Share an [`abstract-level`][abstract-level] database over the network or other kind of stream. Supersedes [`multileveldown`][multileveldown] and [`multilevel`][multilevel].
### [`rave-level`][rave-level]
[](https://www.npmjs.com/package/rave-level) [](https://www.npmjs.com/package/rave-level) [](https://www.npmjs.com/package/rave-level) [](https://github.com/Level/rave-level) [](https://github.com/Level/rave-level/graphs/contributors) 
Use a LevelDB database from multiple processes with seamless failover. Supersedes [`level-party`][level-party].
## Processing
**Modules for indexing, alternative forms of querying data, MapReduce models and other forms of data processing. This section has not been updated for [`abstract-level`][abstract-level] yet.**
### [`level-auto-index`][level-auto-index]
[](https://www.npmjs.com/package/level-auto-index) [](https://www.npmjs.com/package/level-auto-index) [](https://www.npmjs.com/package/level-auto-index) [](https://github.com/hypermodules/level-auto-index) [](https://github.com/hypermodules/level-auto-index/graphs/contributors)
Automatic secondary indexing for [`levelup`][levelup] and [`subleveldown`][subleveldown].
### [`jsonquery`][jsonquery]
[](https://www.npmjs.com/package/jsonquery) [](https://www.npmjs.com/package/jsonquery) [](https://www.npmjs.com/package/jsonquery) [](https://github.com/eugeneware/jsonquery) [](https://github.com/eugeneware/jsonquery/graphs/contributors)
Query [`levelup`][levelup] with a MongoDB-like query API that returns streams.
### [`jsonquery-engine`][jsonquery-engine]
[](https://www.npmjs.com/package/jsonquery-engine) [](https://www.npmjs.com/package/jsonquery-engine) [](https://www.npmjs.com/package/jsonquery-engine) [](https://github.com/eugeneware/jsonquery-engine) [](https://github.com/eugeneware/jsonquery-engine/graphs/contributors)
A full MongoDB query language implementation with indexes for querying [`levelup`][levelup].
### [`level-indico`][level-indico]
[](https://www.npmjs.com/package/level-indico) [](https://www.npmjs.com/package/level-indico) [](https://www.npmjs.com/package/level-indico) [](https://github.com/mariocasciaro/level-indico) [](https://github.com/mariocasciaro/level-indico/graphs/contributors)
Yet another indexing plugin for [`levelup`][levelup]. By providing only a low-level querying mechanism it gives you the power to build more complicated and optimized queries on top of it.
NB. Relies on [`bytewise`][bytewise] and [`level-sublevel`][level-sublevel], both of which have caveats.
### [`level-inverted-index`][level-inverted-index]
[](https://www.npmjs.com/package/level-inverted-index) [](https://www.npmjs.com/package/level-inverted-index) [](https://www.npmjs.com/package/level-inverted-index) [](https://github.com/dominictarr/level-inverted-index) [](https://github.com/dominictarr/level-inverted-index/graphs/contributors)
Create an inverted index for full-text search.
### [`map-reduce`][map-reduce]
[](https://www.npmjs.com/package/map-reduce) [](https://www.npmjs.com/package/map-reduce) [](https://www.npmjs.com/package/map-reduce) [](https://github.com/dominictarr/map-reduce) [](https://github.com/dominictarr/map-reduce/graphs/contributors)
A MapReduce implementation on top of [`levelup`][levelup]. Allows you to define a map reduce query that will run on top of your db. The map reduces are incremental, and you can query the results in real-time.
### [`level-map-merge`][level-map-merge]
[](https://www.npmjs.com/package/level-map-merge) [](https://www.npmjs.com/package/level-map-merge) [](https://www.npmjs.com/package/level-map-merge) [](https://github.com/dominictarr/level-map-merge) [](https://github.com/dominictarr/level-map-merge/graphs/contributors)
Like [`map-reduce`][map-reduce] but simpler. Has a batch component that runs periodically, and a real-time component that fills in the gaps. Good for generating inverted indexes.
### [`level-queryengine`][level-queryengine]
[](https://www.npmjs.com/package/level-queryengine) [](https://www.npmjs.com/package/level-queryengine) [](https://www.npmjs.com/package/level-queryengine) [](https://github.com/eugeneware/level-queryengine) [](https://github.com/eugeneware/level-queryengine/graphs/contributors)
A generic pluggable query-engine system (that supports indexes) for [`levelup`][levelup].
### [`level-trigger`][level-trigger]
[](https://www.npmjs.com/package/level-trigger) [](https://www.npmjs.com/package/level-trigger) [](https://www.npmjs.com/package/level-trigger) [](https://github.com/dominictarr/level-trigger) [](https://github.com/dominictarr/level-trigger/graphs/contributors)
Triggers for [`levelup`][levelup]. Runs an async job when a key changes. All jobs will eventually run, even across restarts!
### [`levels`][levels]
[](https://www.npmjs.com/package/levels) [](https://www.npmjs.com/package/levels) [](https://www.npmjs.com/package/levels) [](https://github.com/eugeneware/levels) [](https://github.com/eugeneware/levels/graphs/contributors)
A light-weight full text search engine for [`levelup`][levelup] (Port of TJ's [reds](https://github.com/visionmedia/reds) redis search engine).
### [`map-reduce-chained`][map-reduce-chained]
[](https://www.npmjs.com/package/map-reduce-chained) [](https://www.npmjs.com/package/map-reduce-chained) [](https://www.npmjs.com/package/map-reduce-chained) [](https://github.com/ryanramage/map-reduce-chained) [](https://github.com/ryanramage/map-reduce-chained/graphs/contributors)
Extends [`map-reduce`][map-reduce] and [`level-mapped-index`][level-mapped-index] to provide easy to setup chained MapReduce. An example use case is to find the top 10 values after a reduce.
### [`path-engine`][path-engine]
[](https://www.npmjs.com/package/path-engine) [](https://www.npmjs.com/package/path-engine) [](https://www.npmjs.com/package/path-engine) [](https://github.com/eugeneware/path-engine) [](https://github.com/eugeneware/path-engine/graphs/contributors)
Query [`levelup`][levelup] using a JavaScript property path array syntax with indexes.
### [`subindex`][subindex]
[](https://www.npmjs.com/package/subindex) [](https://www.npmjs.com/package/subindex) [](https://www.npmjs.com/package/subindex) [](https://github.com/eugeneware/subindex) [](https://github.com/eugeneware/subindex/graphs/contributors)
Generic pluggable indexing system for [`levelup`][levelup].
### [`level-sec`][level-sec]
[](https://www.npmjs.com/package/level-sec) [](https://www.npmjs.com/package/level-sec) [](https://www.npmjs.com/package/level-sec) [](https://github.com/juliangruber/level-sec) [](https://github.com/juliangruber/level-sec/graphs/contributors)
High-level API for creating secondary indexes.
### [`level-secondary`][level-secondary]
[](https://www.npmjs.com/package/level-secondary) [](https://www.npmjs.com/package/level-secondary) [](https://www.npmjs.com/package/level-secondary) [](https://github.com/juliangruber/level-secondary) [](https://github.com/juliangruber/level-secondary/graphs/contributors)
Create and query secondary indexes.
### [`inverted-index`][inverted-index]
[](https://www.npmjs.com/package/inverted-index) [](https://www.npmjs.com/package/inverted-index) [](https://www.npmjs.com/package/inverted-index) [](https://github.com/kordon/inverted) [](https://github.com/kordon/inverted/graphs/contributors)
Inverted index built upon [`levelup`][levelup].
### [`level-index-update`][level-index-update]
[](https://www.npmjs.com/package/level-index-update) [](https://www.npmjs.com/package/level-index-update) [](https://www.npmjs.com/package/level-index-update) [](https://github.com/binocarlos/level-index-update) [](https://github.com/binocarlos/level-index-update/graphs/contributors)
Remove the old indexes in the same batch as the new ones are inserted.
### [`range-index`][range-index]
[](https://www.npmjs.com/package/range-index) [](https://www.npmjs.com/package/range-index) [](https://www.npmjs.com/package/range-index) [](https://github.com/kordon/range) [](https://github.com/kordon/range/graphs/contributors)
Range indexes for [`levelup`][levelup].
### [`level-path-index`][level-path-index]
[](https://www.npmjs.com/package/level-path-index) [](https://www.npmjs.com/package/level-path-index) [](https://www.npmjs.com/package/level-path-index) [](https://github.com/binocarlos/level-path-index) [](https://github.com/binocarlos/level-path-index/graphs/contributors)
Index properties of items that live in a tree of materialized paths.
### [`level-sql`][level-sql]
[](https://www.npmjs.com/package/level-sql) [](https://www.npmjs.com/package/level-sql) [](https://www.npmjs.com/package/level-sql) [](https://github.com/hij1nx/level-sql) [](https://github.com/hij1nx/level-sql/graphs/contributors)
SQL queries for [`levelup`][levelup].
### [`level-hash-index`][level-hash-index]
[](https://www.npmjs.com/package/level-hash-index) [](https://www.npmjs.com/package/level-hash-index) [](https://www.npmjs.com/package/level-hash-index) [](https://github.com/smallhelm/level-hash-index) [](https://github.com/smallhelm/level-hash-index/graphs/contributors)
Store any string into [`levelup`][levelup], and get a collision free hash of that value that you can use in an index (or similar).
### [`level-idx`][level-idx]
[](https://www.npmjs.com/package/level-idx) [](https://www.npmjs.com/package/level-idx) [](https://www.npmjs.com/package/level-idx) [](https://github.com/hypermodules/level-idx) [](https://github.com/hypermodules/level-idx/graphs/contributors)
Another high-level API for creating secondary indexes, using [`level-auto-index`][level-auto-index].
### [`level-indexer`][level-indexer]
[](https://www.npmjs.com/package/level-indexer) [](https://www.npmjs.com/package/level-indexer) [](https://www.npmjs.com/package/level-indexer) [](https://github.com/mafintosh/level-indexer) [](https://github.com/mafintosh/level-indexer/graphs/contributors)
Generic indexer for [`levelup`][levelup]. Only stores document keys for space efficiency.
### [`level-librarian`][level-librarian]
[](https://www.npmjs.com/package/level-librarian) [](https://www.npmjs.com/package/level-librarian) [](https://www.npmjs.com/package/level-librarian) [](https://github.com/microstar-db/level-librarian) [](https://github.com/microstar-db/level-librarian/graphs/contributors)
Lightweight indexing and querying with the LLCJ query language.
### [`level-match-index`][level-match-index]
[](https://www.npmjs.com/package/level-match-index) [](https://www.npmjs.com/package/level-match-index) [](https://www.npmjs.com/package/level-match-index) [](https://github.com/mmckegg/level-match-index) [](https://github.com/mmckegg/level-match-index/graphs/contributors)
Index and filter [`level-sublevel`][level-sublevel] databases and watch for future changes.
### [`level-assoc`][level-assoc]
[](https://www.npmjs.com/package/level-assoc) [](https://www.npmjs.com/package/level-assoc) [](https://www.npmjs.com/package/level-assoc) [](https://github.com/substack/level-assoc) [](https://github.com/substack/level-assoc/graphs/contributors)
Relational foreign key associations (`hasMany`, `belongsTo`) for [`levelup`][levelup].
### [`level-tree-index`][level-tree-index]
[](https://www.npmjs.com/package/level-tree-index) [](https://www.npmjs.com/package/level-tree-index) [](https://www.npmjs.com/package/level-tree-index) [](https://github.com/biobricks/level-tree-index) [](https://github.com/biobricks/level-tree-index/graphs/contributors)
Tree indexer for [`levelup`][levelup].
### [`changes-index`][changes-index]
[](https://www.npmjs.com/package/changes-index) [](https://www.npmjs.com/package/changes-index) [](https://www.npmjs.com/package/changes-index) [](https://github.com/substack/changes-index) [](https://github.com/substack/changes-index/graphs/contributors)
Create indexes from a [changes-feed](https://github.com/mafintosh/changes-feed). Provides a way to create a materialized view on top of an append-only log.
### [`changesdown`][changesdown]
[](https://www.npmjs.com/package/changesdown) [](https://www.npmjs.com/package/changesdown) [](https://www.npmjs.com/package/changesdown) [](https://github.com/mafintosh/changesdown) [](https://github.com/mafintosh/changesdown/graphs/contributors)
[`levelup`][levelup] interface that uses an [`abstract-leveldown`][abstract-leveldown] store that writes to a [changes-feed](https://github.com/mafintosh/changes-feed) to store its state.
### [`level-ordered`][level-ordered]
[](https://www.npmjs.com/package/level-ordered) [](https://www.npmjs.com/package/level-ordered) [](https://www.npmjs.com/package/level-ordered) [](https://github.com/eranbnn/level-ordered) [](https://github.com/eranbnn/level-ordered/graphs/contributors)
A wrapper for [`level`][level] that keeps inserted items ordered.
## Databases
**Complete Node.js databases built with Level.**
### [`dat`][dat]
[](https://www.npmjs.com/package/dat) [](https://www.npmjs.com/package/dat) [](https://www.npmjs.com/package/dat) [](https://github.com/maxogden/dat) [](https://github.com/maxogden/dat/graphs/contributors)
Lets you build streaming data pipelines that can be shared and replicated by others.
### [`pouchdb`][pouchdb]
[](https://www.npmjs.com/package/pouchdb) [](https://www.npmjs.com/package/pouchdb) [](https://www.npmjs.com/package/pouchdb)
PouchDB allows you to store and query data offline and then sync with CouchDB when online. For Node, browser and mobile.
### [`levelgraph`][levelgraph]
[](https://www.npmjs.com/package/levelgraph) [](https://www.npmjs.com/package/levelgraph) [](https://www.npmjs.com/package/levelgraph) [](https://github.com/mcollina/node-levelgraph) [](https://github.com/mcollina/node-levelgraph/graphs/contributors)
A Graph database built on top of [`levelup`][levelup] with pattern-matching and join support.
### [`linvodb3`][linvodb3]
[](https://www.npmjs.com/package/linvodb3) [](https://www.npmjs.com/package/linvodb3) [](https://www.npmjs.com/package/linvodb3) [](https://github.com/Ivshti/linvodb3) [](https://github.com/Ivshti/linvodb3/graphs/contributors)
Persistent database on top of [`levelup`][levelup] for Node.js/NW.js with MongoDB-style queries, Mongoose-like models and a map/reduce system.
### [`rxdb`][rxdb]
[](https://www.npmjs.com/package/rxdb) [](https://www.npmjs.com/package/rxdb) [](https://www.npmjs.com/package/rxdb) [](https://github.com/pubkey/rxdb) [](https://github.com/pubkey/rxdb/graphs/contributors)
Event-driven database based on [`pouchdb`][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.
### [`search-index`][search-index]
[](https://www.npmjs.com/package/search-index) [](https://www.npmjs.com/package/search-index) [](https://www.npmjs.com/package/search-index) [](https://github.com/fergiemcdowall/search-index) [](https://github.com/fergiemcdowall/search-index/graphs/contributors)
A persistent full text search engine for browser and Node.js.
## Data Structures
**Modules that utilize a specific key/value scheme to provide a higher-level data structure.**
### [`merkle-dag`][merkle-dag]
[](https://www.npmjs.com/package/merkle-dag) [](https://www.npmjs.com/package/merkle-dag) [](https://www.npmjs.com/package/merkle-dag) [](https://github.com/mafintosh/merkle-dag) [](https://github.com/mafintosh/merkle-dag/graphs/contributors)
Merkle DAG on top of LevelDB
### [`merkle-patricia-tree`][merkle-patricia-tree]
[](https://www.npmjs.com/package/merkle-patricia-tree) [](https://www.npmjs.com/package/merkle-patricia-tree) [](https://www.npmjs.com/package/merkle-patricia-tree) [](https://github.com/ethereumjs/merkle-patricia-tree) [](https://github.com/ethereumjs/merkle-patricia-tree/graphs/contributors)
Implementation of the modified merkle patricia tree as specified in [Ethereum's yellow paper](http://gavwood.com/Paper.pdf).
### [`level-array`][level-array]
[](https://www.npmjs.com/package/level-array) [](https://www.npmjs.com/package/level-array) [](https://www.npmjs.com/package/level-array) [](https://github.com/juliangruber/level-array) [](https://github.com/juliangruber/level-array/graphs/contributors)
The array datatype inside [`levelup`][levelup].
### [`level-set`][level-set]
[](https://www.npmjs.com/package/level-set) [](https://www.npmjs.com/package/level-set) [](https://www.npmjs.com/package/level-set) [](https://github.com/maiah/level-set) [](https://github.com/maiah/level-set/graphs/contributors)
Add a `set` method to [`levelup`][levelup] for saving objects in a tree-like structure.
### [`level-push`][level-push]
[](https://www.npmjs.com/package/level-push) [](https://www.npmjs.com/package/level-push) [](https://www.npmjs.com/package/level-push) [](https://github.com/maiah/level-push) [](https://github.com/maiah/level-push/graphs/contributors)
Add a `push` method to [`levelup`][levelup] for saving objects using [`level-set`][level-set] with auto-generated UUID.
### [`level-version`][level-version]
[](https://www.npmjs.com/package/level-version) [](https://www.npmjs.com/package/level-version) [](https://www.npmjs.com/package/level-version) [](https://github.com/brycebaril/level-version) [](https://github.com/brycebaril/level-version/graphs/contributors)
Store and retrieve versioned data in [`levelup`][levelup].
### [`level-queue-type`][level-queue-type]
[](https://www.npmjs.com/package/level-queue-type) [](https://www.npmjs.com/package/level-queue-type) [](https://www.npmjs.com/package/level-queue-type) [](https://github.com/mcollina/level-queue-type) [](https://github.com/mcollina/level-queue-type/graphs/contributors)
The queue datatype inside [`levelup`][levelup].
### [`level-q`][level-q]
[](https://www.npmjs.com/package/level-q) [](https://www.npmjs.com/package/level-q) [](https://www.npmjs.com/package/level-q) [](https://github.com/eugeneware/level-q) [](https://github.com/eugeneware/level-q/graphs/contributors)
Priority queuing for [`levelup`][levelup].
### [`qool`][qool]
[](https://www.npmjs.com/package/qool) [](https://www.npmjs.com/package/qool) [](https://www.npmjs.com/package/qool) [](https://github.com/kessler/qool) [](https://github.com/kessler/qool/graphs/contributors)
A queue backed by [`levelup`][levelup], durable and FIFO.
### [`level-trie`][level-trie]
[](https://www.npmjs.com/package/level-trie) [](https://www.npmjs.com/package/level-trie) [](https://www.npmjs.com/package/level-trie) [](https://github.com/juliangruber/level-trie) [](https://github.com/juliangruber/level-trie/graphs/contributors)
The TRIE data structure and search algorithm, on top of [`levelup`][levelup].
### [`level-geospatial`][level-geospatial]
[](https://www.npmjs.com/package/level-geospatial) [](https://www.npmjs.com/package/level-geospatial) [](https://www.npmjs.com/package/level-geospatial) [](https://github.com/richorama/level-geospatial) [](https://github.com/richorama/level-geospatial/graphs/contributors)
Store key values pairs with lat/lon coordinates, and query using a radius.
### [`level-pathwise`][level-pathwise]
[](https://www.npmjs.com/package/level-pathwise) [](https://www.npmjs.com/package/level-pathwise) [](https://www.npmjs.com/package/level-pathwise) [](https://github.com/juliangruber/level-pathwise) [](https://github.com/juliangruber/level-pathwise/graphs/contributors)
Turn [`levelup`][levelup] into one huge object of arbitrary size! Efficiently and atomically update and read parts of it.
### [`level-places`][level-places]
[](https://www.npmjs.com/package/level-places) [](https://www.npmjs.com/package/level-places) [](https://www.npmjs.com/package/level-places) [](https://github.com/Wayla/level-places) [](https://github.com/Wayla/level-places/graphs/contributors)
Store and retrieve places near a lat/long pair.
### [`level-nearby-stream`][level-nearby-stream]
[](https://www.npmjs.com/package/level-nearby-stream) [](https://www.npmjs.com/package/level-nearby-stream) [](https://www.npmjs.com/package/level-nearby-stream) [](https://github.com/juliangruber/level-nearby-stream) [](https://github.com/juliangruber/level-nearby-stream/graphs/contributors)
Stream in nearby places using the browser's geolocation and [`level-places`][level-places].
### [`level-tree`][level-tree]
[](https://www.npmjs.com/package/level-tree) [](https://www.npmjs.com/package/level-tree) [](https://www.npmjs.com/package/level-tree) [](https://github.com/calvinmetcalf/level-tree) [](https://github.com/calvinmetcalf/level-tree/graphs/contributors)
Geospatial indexing for GeoJSON in [`levelup`][levelup]
### [`level-list`][level-list]
[](https://www.npmjs.com/package/level-list) [](https://www.npmjs.com/package/level-list) [](https://www.npmjs.com/package/level-list) [](https://github.com/juliangruber/level-list) [](https://github.com/juliangruber/level-list/graphs/contributors)
Map lists of data stored in [`levelup`][levelup] to DOM elements.
### [`level-reactive`][level-reactive]
[](https://www.npmjs.com/package/level-reactive) [](https://www.npmjs.com/package/level-reactive) [](https://www.npmjs.com/package/level-reactive) [](https://github.com/juliangruber/level-reactive) [](https://github.com/juliangruber/level-reactive/graphs/contributors)
Reactive templating for data stored in [`levelup`][levelup].
### [`level-paginate`][level-paginate]
[](https://www.npmjs.com/package/level-paginate) [](https://www.npmjs.com/package/level-paginate) [](https://www.npmjs.com/package/level-paginate) [](https://github.com/juliangruber/level-paginate) [](https://github.com/juliangruber/level-paginate/graphs/contributors)
Streaming pagination for [`levelup`][levelup].
### [`level-average`][level-average]
[](https://www.npmjs.com/package/level-average) [](https://www.npmjs.com/package/level-average) [](https://www.npmjs.com/package/level-average) [](https://github.com/juliangruber/level-average) [](https://github.com/juliangruber/level-average/graphs/contributors)
Calculate rolling averages in [`levelup`][levelup].
### [`level-sum`][level-sum]
[](https://www.npmjs.com/package/level-sum) [](https://www.npmjs.com/package/level-sum) [](https://www.npmjs.com/package/level-sum) [](https://github.com/juliangruber/level-sum) [](https://github.com/juliangruber/level-sum/graphs/contributors)
Calculate sums in [`levelup`][levelup] and get live updates.
### [`level-historical-json`][level-historical-json]
[](https://www.npmjs.com/package/level-historical-json) [](https://www.npmjs.com/package/level-historical-json) [](https://www.npmjs.com/package/level-historical-json) [](https://github.com/ellell/level-historical-json) [](https://github.com/ellell/level-historical-json/graphs/contributors)
Keep a history of all the changes of a JSON document.
### [`level-immutable`][level-immutable]
[](https://www.npmjs.com/package/level-immutable) [](https://www.npmjs.com/package/level-immutable) [](https://www.npmjs.com/package/level-immutable) [](https://github.com/eugeneware/level-immutable) [](https://github.com/eugeneware/level-immutable/graphs/contributors)
[`levelup`][levelup] immutable history and database snapshotting based on ideas in `datomic`.
### [`level-model`][level-model]
[](https://www.npmjs.com/package/level-model) [](https://www.npmjs.com/package/level-model) [](https://www.npmjs.com/package/level-model) [](https://github.com/sethvincent/level-model) [](https://github.com/sethvincent/level-model/graphs/contributors)
A higher-level module for creating content models using [`levelup`][levelup] and JSON Schema validation.
### [`level-stream`][level-stream]
[](https://www.npmjs.com/package/level-stream) [](https://www.npmjs.com/package/level-stream) [](https://www.npmjs.com/package/level-stream) [](https://github.com/juliangruber/level-stream) [](https://github.com/juliangruber/level-stream/graphs/contributors)
Persist streams in [`levelup`][levelup].
### [`level-stay`][level-stay]
[](https://www.npmjs.com/package/level-stay) [](https://www.npmjs.com/package/level-stay) [](https://www.npmjs.com/package/level-stay) [](https://github.com/juliangruber/level-stay) [](https://github.com/juliangruber/level-stay/graphs/contributors)
An alternative approach to storing scuttlebutts in [`levelup`][levelup].
### [`skeyma`][skeyma]
[](https://www.npmjs.com/package/skeyma) [](https://www.npmjs.com/package/skeyma) [](https://www.npmjs.com/package/skeyma) [](https://github.com/jed/skeyma) [](https://github.com/jed/skeyma/graphs/contributors)
Turns a template string (like `${forumId}/${postId}`) into parse/serialize streams that transform objects like `{forumId, postId, text}` into key-value pairs and back.
### [`level-autotable`][level-autotable]
[](https://www.npmjs.com/package/level-autotable) [](https://www.npmjs.com/package/level-autotable) [](https://www.npmjs.com/package/level-autotable) [](https://github.com/santoshrajan/levelup-autotable) [](https://github.com/santoshrajan/levelup-autotable/graphs/contributors)
Auto incrementing keys with "fields" and "records".
### [`level-forks`][level-forks]
[](https://www.npmjs.com/package/level-forks) [](https://www.npmjs.com/package/level-forks) [](https://www.npmjs.com/package/level-forks) [](https://github.com/substack/level-forks) [](https://github.com/substack/level-forks/graphs/contributors)
Forking graph of cascading namespaces.
### [`level-geo`][level-geo]
[](https://www.npmjs.com/package/level-geo) [](https://www.npmjs.com/package/level-geo) [](https://www.npmjs.com/package/level-geo) [](https://github.com/julianduque/level-geo) [](https://github.com/julianduque/level-geo/graphs/contributors)
A geospatial index for [`levelup`][levelup].
### [`level-geography`][level-geography]
[](https://www.npmjs.com/package/level-geography) [](https://www.npmjs.com/package/level-geography) [](https://www.npmjs.com/package/level-geography) [](https://github.com/morganherlocker/level-geography) [](https://github.com/morganherlocker/level-geography/graphs/contributors)
Indexed geography storage in [`levelup`][levelup].
### [`accountdown`][accountdown]
[](https://www.npmjs.com/package/accountdown) [](https://www.npmjs.com/package/accountdown) [](https://www.npmjs.com/package/accountdown) [](https://github.com/substack/accountdown) [](https://github.com/substack/accountdown/graphs/contributors)
Persistent user accounts.
### [`accountdown-model`][accountdown-model]
[](https://www.npmjs.com/package/accountdown-model) [](https://www.npmjs.com/package/accountdown-model) [](https://www.npmjs.com/package/accountdown-model) [](https://github.com/sethvincent/accountdown-model) [](https://github.com/sethvincent/accountdown-model/graphs/contributors)
A wrapper around [`accountdown`][accountdown] that provides a few additional features
## Transience
### [`cachedown`][cachedown]
[](https://www.npmjs.com/package/cachedown) [](https://www.npmjs.com/package/cachedown) [](https://www.npmjs.com/package/cachedown) [](https://github.com/mvayngrib/cachedown) [](https://github.com/mvayngrib/cachedown/graphs/contributors)
LRU cache implemented as an [`abstract-leveldown`][abstract-leveldown] layer.
### [`level-ttl`][level-ttl]
[](https://www.npmjs.com/package/level-ttl) [](https://www.npmjs.com/package/level-ttl) [](https://www.npmjs.com/package/level-ttl) [](https://github.com/Level/level-ttl) [](https://github.com/Level/level-ttl/graphs/contributors)
Add a `ttl` (time-to-live) option to [`levelup`][levelup]. NB. Suffers from race issues. See also [`tiny-level-ttl`][tiny-level-ttl].
### [`tiny-level-ttl`][tiny-level-ttl]
[](https://www.npmjs.com/package/tiny-level-ttl) [](https://www.npmjs.com/package/tiny-level-ttl) [](https://www.npmjs.com/package/tiny-level-ttl) [](https://github.com/ArtskydJ/tiny-level-ttl) [](https://github.com/ArtskydJ/tiny-level-ttl/graphs/contributors)
Add a `ttl` (time-to-live) option to [`levelup`][levelup], [`level-sublevel`][level-sublevel] or [`level-spaces`][level-spaces]. Also respects [`level-lock`][level-lock].
### [`level-live-cache`][level-live-cache]
[](https://www.npmjs.com/package/level-live-cache) [](https://www.npmjs.com/package/level-live-cache) [](https://www.npmjs.com/package/level-live-cache) [](https://github.com/juliangruber/level-live-cache) [](https://github.com/juliangruber/level-live-cache/graphs/contributors)
An in-memory cache that keeps up to date with its source.
### [`level-lru-cache`][level-lru-cache]
[](https://www.npmjs.com/package/level-lru-cache) [](https://www.npmjs.com/package/level-lru-cache) [](https://www.npmjs.com/package/level-lru-cache) [](https://github.com/kemitchell/level-lru-cache.js) [](https://github.com/kemitchell/level-lru-cache.js/graphs/contributors)
Simple LRU cache.
### [`level-ttl-cache`][level-ttl-cache]
[](https://www.npmjs.com/package/level-ttl-cache) [](https://www.npmjs.com/package/level-ttl-cache) [](https://www.npmjs.com/package/level-ttl-cache) [](https://github.com/rvagg/level-ttl-cache) [](https://github.com/rvagg/level-ttl-cache/graphs/contributors)
A pass-through cache for arbitrary objects or binary data using LevelDB, expired by a TTL.
### [`level-cache`][level-cache]
[](https://www.npmjs.com/package/level-cache) [](https://www.npmjs.com/package/level-cache) [](https://www.npmjs.com/package/level-cache) [](https://github.com/Raynos/level-cache) [](https://github.com/Raynos/level-cache/graphs/contributors)
A caching module you can place in front of a [`levelup`][levelup] database. It will cache a subset of the database in an in-memory LRU cache based on configuration. It has an optional synchronous API which will return from the cache only.
### [`levelup-cache`][levelup-cache]
[](https://www.npmjs.com/package/levelup-cache) [](https://www.npmjs.com/package/levelup-cache) [](https://www.npmjs.com/package/levelup-cache) [](https://github.com/TehShrike/levelup-cache) [](https://github.com/TehShrike/levelup-cache/graphs/contributors)
Use [`levelup`][levelup] to cache remote data.
## Atomicity
### [`level-lock`][level-lock]
[](https://www.npmjs.com/package/level-lock) [](https://www.npmjs.com/package/level-lock) [](https://www.npmjs.com/package/level-lock) [](https://github.com/substack/level-lock) [](https://github.com/substack/level-lock/graphs/contributors)
In-memory advisory read/write locks for [`levelup`][levelup] keys.
### [`level-mutex`][level-mutex]
[](https://www.npmjs.com/package/level-mutex) [](https://www.npmjs.com/package/level-mutex) [](https://www.npmjs.com/package/level-mutex) [](https://github.com/mikeal/level-mutex) [](https://github.com/mikeal/level-mutex/graphs/contributors)
Mutex read/write lock for [`levelup`][levelup].
### [`level-updater`][level-updater]
[](https://www.npmjs.com/package/level-updater) [](https://www.npmjs.com/package/level-updater) [](https://www.npmjs.com/package/level-updater) [](https://github.com/hughsk/level-updater) [](https://github.com/hughsk/level-updater/graphs/contributors)
Update keys without overlapping changes - makes it possible to implement an atomic incrementer, JSON merger, etc.
### [`levelplus`][levelplus]
[](https://www.npmjs.com/package/levelplus) [](https://www.npmjs.com/package/levelplus) [](https://www.npmjs.com/package/levelplus) [](https://github.com/https://github.com/eugeneware/levelplus) [](https://github.com/https://github.com/eugeneware/levelplus/graphs/contributors)
Adds atomic updates, increments, array pushes, set additions and user-defined atomic operations to [`levelup`][levelup].
### [`level-atomics`][level-atomics]
[](https://www.npmjs.com/package/level-atomics) [](https://www.npmjs.com/package/level-atomics) [](https://www.npmjs.com/package/level-atomics) [](https://github.com/IndigoUnited/node-level-atomics) [](https://github.com/IndigoUnited/node-level-atomics/graphs/contributors)
Add (parallel) atomic operations like `insert`, `replace`, `increment` and `decrement` to [`levelup`][levelup].
### [`level-transactions`][level-transactions]
[](https://www.npmjs.com/package/level-transactions) [](https://www.npmjs.com/package/level-transactions) [](https://www.npmjs.com/package/level-transactions) [](https://github.com/cshum/level-transactions) [](https://github.com/cshum/level-transactions/graphs/contributors)
Transaction layer for [`levelup`][levelup].
## Jobs
### [`level-schedule`][level-schedule]
[](https://www.npmjs.com/package/level-schedule) [](https://www.npmjs.com/package/level-schedule) [](https://www.npmjs.com/package/level-schedule) [](https://github.com/juliangruber/level-schedule) [](https://github.com/juliangruber/level-schedule/graphs/contributors)
A durable job scheduler.
### [`level-jobs`][level-jobs]
[](https://www.npmjs.com/package/level-jobs) [](https://www.npmjs.com/package/level-jobs) [](https://www.npmjs.com/package/level-jobs) [](https://github.com/pgte/level-jobs) [](https://github.com/pgte/level-jobs/graphs/contributors)
Job Queue in [`levelup`][levelup].
### [`batchdb`][batchdb]
[](https://www.npmjs.com/package/batchdb) [](https://www.npmjs.com/package/batchdb) [](https://www.npmjs.com/package/batchdb) [](https://github.com/substack/batchdb) [](https://github.com/substack/batchdb/graphs/contributors)
[`levelup`][levelup] and disk storage for queued batch jobs.
## File System
### [`level-filesystem`][level-filesystem]
[](https://www.npmjs.com/package/level-filesystem) [](https://www.npmjs.com/package/level-filesystem) [](https://www.npmjs.com/package/level-filesystem) [](https://github.com/mafintosh/level-filesystem) [](https://github.com/mafintosh/level-filesystem/graphs/contributors)
Full implementation of the Node.js `fs` module on top of [`levelup`][levelup].
### [`browserify-fs`][browserify-fs]
[](https://www.npmjs.com/package/browserify-fs) [](https://www.npmjs.com/package/browserify-fs) [](https://www.npmjs.com/package/browserify-fs) [](https://github.com/mafintosh/browserify-fs) [](https://github.com/mafintosh/browserify-fs/graphs/contributors)
[`level-filesystem`][level-filesystem] as drop-in `fs` replacement for the browser, to be used with `browserify`.
### [`level-fs`][level-fs]
[](https://www.npmjs.com/package/level-fs) [](https://www.npmjs.com/package/level-fs) [](https://www.npmjs.com/package/level-fs) [](https://github.com/juliangruber/level-fs) [](https://github.com/juliangruber/level-fs/graphs/contributors)
Node's `fs` module with [`levelup`][levelup] as backend.
### [`level-fs-browser`][level-fs-browser]
[](https://www.npmjs.com/package/level-fs-browser) [](https://www.npmjs.com/package/level-fs-browser) [](https://www.npmjs.com/package/level-fs-browser) [](https://github.com/juliangruber/level-fs-browser) [](https://github.com/juliangruber/level-fs-browser/graphs/contributors)
[`level-fs`][level-fs] as drop-in `fs` replacement for the browser, to be used with `browserify`.
### [`level-store`][level-store]
[](https://www.npmjs.com/package/level-store) [](https://www.npmjs.com/package/level-store) [](https://www.npmjs.com/package/level-store) [](https://github.com/juliangruber/level-store) [](https://github.com/juliangruber/level-store/graphs/contributors)
A streaming storage engine based on [`levelup`][levelup].
### [`level-serve`][level-serve]
[](https://www.npmjs.com/package/level-serve) [](https://www.npmjs.com/package/level-serve) [](https://www.npmjs.com/package/level-serve) [](https://github.com/Wayla/level-serve) [](https://github.com/Wayla/level-serve/graphs/contributors)
Streaming static file server based on [`levelup`][levelup].
### [`suckit`][suckit]
[](https://www.npmjs.com/package/suckit) [](https://www.npmjs.com/package/suckit) [](https://www.npmjs.com/package/suckit) [](https://github.com/deoxxa/suckit) [](https://github.com/deoxxa/suckit/graphs/contributors)
Expose a [`level-store`][level-store] over HTTP.
### [`level-vinyl`][level-vinyl]
[](https://www.npmjs.com/package/level-vinyl) [](https://www.npmjs.com/package/level-vinyl) [](https://www.npmjs.com/package/level-vinyl) [](https://github.com/vweevers/level-vinyl) [](https://github.com/vweevers/level-vinyl/graphs/contributors)
[Vinyl](https://github.com/gulpjs/vinyl-fs) adapter and blob store. Saves file contents in a content addressable blob store, file metadata in [`levelup`][levelup].
### [`level-blob`][level-blob]
[](https://www.npmjs.com/package/level-blob) [](https://www.npmjs.com/package/level-blob) [](https://www.npmjs.com/package/level-blob) [](https://github.com/crodas/level-blob) [](https://github.com/crodas/level-blob/graphs/contributors)
Store blobs in [`levelup`][levelup]
### [`level-blob-store`][level-blob-store]
[](https://www.npmjs.com/package/level-blob-store) [](https://www.npmjs.com/package/level-blob-store) [](https://www.npmjs.com/package/level-blob-store) [](https://github.com/diasdavid/level-blob-store) [](https://github.com/diasdavid/level-blob-store/graphs/contributors)
An [`abstract-blob-store`](https://github.com/maxogden/abstract-blob-store) using LevelDB as the storage backend
### [`level-pull-blob-store`][level-pull-blob-store]
[](https://www.npmjs.com/package/level-pull-blob-store) [](https://www.npmjs.com/package/level-pull-blob-store) [](https://www.npmjs.com/package/level-pull-blob-store) [](https://github.com/ipfs/js-level-pull-blob-store) [](https://github.com/ipfs/js-level-pull-blob-store/graphs/contributors)
A [`pull-blob-store`](https://github.com/ipfs/interface-pull-blob-store) implementation backed by LevelDB.
### [`level-server`][level-server]
[](https://www.npmjs.com/package/level-server) [](https://www.npmjs.com/package/level-server) [](https://www.npmjs.com/package/level-server) [](https://github.com/Wayla/level-server) [](https://github.com/Wayla/level-server/graphs/contributors)
Standalone LevelDB file server based on [`level-serve`][level-serve], [`multilevel`][multilevel] and [`level-sublevel`][level-sublevel].
## Utilities
### [`level-transcoder`][level-transcoder]
[](https://www.npmjs.com/package/level-transcoder) [](https://www.npmjs.com/package/level-transcoder) [](https://www.npmjs.com/package/level-transcoder) [](https://github.com/Level/transcoder) [](https://github.com/Level/transcoder/graphs/contributors)
Encode data with built-in or custom encodings. Used in [`abstract-level`][abstract-level].
### [`level-test`][level-test]
[](https://www.npmjs.com/package/level-test) [](https://www.npmjs.com/package/level-test) [](https://www.npmjs.com/package/level-test) [](https://github.com/Level/level-test) [](https://github.com/Level/level-test/graphs/contributors)
Inject temporary and isolated [`abstract-leveldown`][abstract-leveldown] stores ([`leveldown`][leveldown], [`level-js`][level-js], [`memdown`][memdown] or custom) into your tests.
### [`level-compose`][level-compose]
[](https://www.npmjs.com/package/level-compose) [](https://www.npmjs.com/package/level-compose) [](https://www.npmjs.com/package/level-compose) [](https://github.com/Level/compose) [](https://github.com/Level/compose/graphs/contributors)
Compose a database factory from [`abstract-leveldown`][abstract-leveldown] and [`levelup`][levelup] layers. TBD if still relevant after [`abstract-level`][abstract-level].
### [`level-exists`][level-exists]
[](https://www.npmjs.com/package/level-exists) [](https://www.npmjs.com/package/level-exists) [](https://www.npmjs.com/package/level-exists) [](https://github.com/juliangruber/level-exists) [](https://github.com/juliangruber/level-exists/graphs/contributors)
Check if a datum exists without reading its value.
### [`level-move`][level-move]
[](https://www.npmjs.com/package/level-move) [](https://www.npmjs.com/package/level-move) [](https://www.npmjs.com/package/level-move) [](https://github.com/juliangruber/level-move) [](https://github.com/juliangruber/level-move/graphs/contributors)
Move a value to another key.
### [`level-capped`][level-capped]
[](https://www.npmjs.com/package/level-capped) [](https://www.npmjs.com/package/level-capped) [](https://www.npmjs.com/package/level-capped) [](https://github.com/juliangruber/level-capped) [](https://github.com/juliangruber/level-capped/graphs/contributors)
Capped collections.
### [`level-create`][level-create]
[](https://www.npmjs.com/package/level-create) [](https://www.npmjs.com/package/level-create) [](https://www.npmjs.com/package/level-create) [](https://github.com/substack/level-create) [](https://github.com/substack/level-create/graphs/contributors)
Insert a key if and only if it doesn't already exist
### [`level-create-batch`][level-create-batch]
[](https://www.npmjs.com/package/level-create-batch) [](https://www.npmjs.com/package/level-create-batch) [](https://www.npmjs.com/package/level-create-batch) [](https://github.com/substack/level-create-batch) [](https://github.com/substack/level-create-batch/graphs/contributors)
Insert a batch of keys if and only if none of the keys already exist
### [`level-modify`][level-modify]
[](https://www.npmjs.com/package/level-modify) [](https://www.npmjs.com/package/level-modify) [](https://www.npmjs.com/package/level-modify) [](https://github.com/dskrepps/level-modify) [](https://github.com/dskrepps/level-modify/graphs/contributors)
Modify an existing key in [`levelup`][levelup]. Uses [`level-lock`][level-lock]. See also [`level-create`][level-create] and [`level-move`][level-move].
### [`level-random`][level-random]
[](https://www.npmjs.com/package/level-random) [](https://www.npmjs.com/package/level-random) [](https://www.npmjs.com/package/level-random) [](https://github.com/michaelnisi/level-random) [](https://github.com/michaelnisi/level-random/graphs/contributors)
Read values of random [`levelup`][levelup] keys.
### [`level-shared-batch`][level-shared-batch]
[](https://www.npmjs.com/package/level-shared-batch) [](https://www.npmjs.com/package/level-shared-batch) [](https://www.npmjs.com/package/level-shared-batch) [](https://github.com/juliangruber/level-shared-batch) [](https://github.com/juliangruber/level-shared-batch/graphs/contributors)
Share batches and commit collectively
### [`batchlevel`][batchlevel]
[](https://www.npmjs.com/package/batchlevel) [](https://www.npmjs.com/package/batchlevel) [](https://www.npmjs.com/package/batchlevel) [](https://github.com/biobricks/batchlevel) [](https://github.com/biobricks/batchlevel/graphs/contributors)
Batch all operations made on a [`levelup`][levelup] instance. Compatible with [`subleveldown`][subleveldown].
### [`ltest`][ltest]
[](https://www.npmjs.com/package/ltest) [](https://www.npmjs.com/package/ltest) [](https://www.npmjs.com/package/ltest) [](https://github.com/ralphtheninja/ltest) [](https://github.com/ralphtheninja/ltest/graphs/contributors)
Test function for [`levelup`][levelup] testing, based on [`level-test`][level-test].
### [`level-probe`][level-probe]
[](https://www.npmjs.com/package/level-probe) [](https://www.npmjs.com/package/level-probe) [](https://www.npmjs.com/package/level-probe) [](https://github.com/vweevers/level-probe) [](https://github.com/vweevers/level-probe/graphs/contributors)
Get the first record in a range, using an iterator or stream. NB. Not compatible with latest [`levelup`][levelup].
### [`autolevel`][autolevel]
[](https://www.npmjs.com/package/autolevel) [](https://www.npmjs.com/package/autolevel) [](https://www.npmjs.com/package/autolevel) [](https://github.com/finwo/autolevel) [](https://github.com/finwo/autolevel/graphs/contributors)
Automatically combine [`levelup`][levelup] with the right [`abstract-leveldown`][abstract-leveldown] store for your configuration.
### [`level-lazy-open`][level-lazy-open]
[](https://www.npmjs.com/package/level-lazy-open) [](https://www.npmjs.com/package/level-lazy-open) [](https://www.npmjs.com/package/level-lazy-open) [](https://github.com/Level/lazy-open) [](https://github.com/Level/lazy-open/graphs/contributors)
Lazily open a leveldown compatible backend.
### [`changeset`][changeset]
[](https://www.npmjs.com/package/changeset) [](https://www.npmjs.com/package/changeset) [](https://www.npmjs.com/package/changeset) [](https://github.com/eugeneware/changeset) [](https://github.com/eugeneware/changeset/graphs/contributors)
Generate diff changesets for javascript objects, decomposing diffs into a series of puts and delete operations. The format is compatible with [`levelup`][levelup] batch operations. Useful to synchronize objects.
### [`levelup-defaults`][levelup-defaults]
[](https://www.npmjs.com/package/levelup-defaults) [](https://www.npmjs.com/package/levelup-defaults) [](https://www.npmjs.com/package/levelup-defaults) [](https://github.com/mafintosh/levelup-defaults) [](https://github.com/mafintosh/levelup-defaults/graphs/contributors)
Change the defaults settings on a [`levelup`][levelup] instance by returning a new [`levelup`][levelup] instance that uses the same [`abstract-leveldown`][abstract-leveldown] but different options.
### [`level-methods`][level-methods]
[](https://www.npmjs.com/package/level-methods) [](https://www.npmjs.com/package/level-methods) [](https://www.npmjs.com/package/level-methods) [](https://github.com/Wayla/level-methods) [](https://github.com/Wayla/level-methods/graphs/contributors)
Useful meta information about [`levelup`][levelup] methods.
## Replication
### [`level-2pc`][level-2pc]
[](https://www.npmjs.com/package/level-2pc) [![npm downloads](https://img.shields.i