diff --git a/README.md b/README.md
index ccc7e08..5d04309 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# Awesome Level
+# Awesome
-> An open list of awesome **[Level][level-org]** modules and resources. [Add yours!](#contributing)
+**An open list of awesome [Level][level-org] modules and resources. [Add yours!](#contributing)**
[![level badge][level-badge]](https://github.com/level/awesome)
[![Test](https://github.com/Level/awesome/actions/workflows/test.yml/badge.svg)](https://github.com/Level/awesome/actions/workflows/test.yml)
@@ -10,19 +10,13 @@
Click to expand
-- [Bundles](#bundles)
- [Core](#core)
-- [Stores](#stores)
-- [Layers](#layers)
+- [Storage](#storage)
- [Encodings](#encodings)
-- [Sublevels](#sublevels)
+- [Streams](#streams)
+- [Shared Access](#shared-access)
- [Processing](#processing)
- [Databases](#databases)
-- [Shared Access](#shared-access)
-- [Streams](#streams)
-- [Iterators](#iterators)
-- [Hooks](#hooks)
-- [Range Options](#range-options)
- [Data Structures](#data-structures)
- [Transience](#transience)
- [Atomicity](#atomicity)
@@ -40,551 +34,297 @@
-## Bundles
-
-**Convenience modules that bundle [a store](#stores) with [`levelup`][levelup] and [`encoding-down`][encoding-down].**
-
-### [`level`][level]
-
-![levelup](https://img.shields.io/badge/levelup-5.1-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/level)](https://github.com/Level/level) [![Contributors](https://img.shields.io/github/contributors/Level/level?color=brightgreen)](https://github.com/Level/level/graphs/contributors)
-
-Bundle for [`leveldown`][leveldown] and [`level-js`][level-js]. Main entry point for beginners.
-
-### [`level-mem`][level-mem]
-
-![levelup](https://img.shields.io/badge/levelup-5.1-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/level-mem)](https://github.com/Level/level-mem) [![Contributors](https://img.shields.io/github/contributors/Level/level-mem?color=brightgreen)](https://github.com/Level/level-mem/graphs/contributors)
-
-Bundle for [`memdown`][memdown].
-
-### [`level-rocksdb`][level-rocksdb]
-
-![levelup](https://img.shields.io/badge/levelup-5.1-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/level-rocksdb)](https://github.com/Level/level-rocksdb) [![Contributors](https://img.shields.io/github/contributors/Level/level-rocksdb?color=brightgreen)](https://github.com/Level/level-rocksdb/graphs/contributors)
-
-Bundle for [`rocksdb`][rocksdb].
-
-### [`level-hyper`][level-hyper]
-
-![levelup](https://img.shields.io/badge/levelup-3.0-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/level-hyper)](https://github.com/Level/level-hyper) [![Contributors](https://img.shields.io/github/contributors/Level/level-hyper?color=brightgreen)](https://github.com/Level/level-hyper/graphs/contributors)
-
-Bundle for [`leveldown-hyper`][leveldown-hyper].
-
-### [`level-indexed`][level-indexed]
-
-![levelup](https://img.shields.io/badge/levelup-2.0-red.svg) [![Last commit](https://img.shields.io/github/last-commit/kapetan/level-indexed)](https://github.com/kapetan/level-indexed) [![Contributors](https://img.shields.io/github/contributors/kapetan/level-indexed?color=brightgreen)](https://github.com/kapetan/level-indexed/graphs/contributors)
-
-Bundle for [`indexeddown`][indexeddown]. Alternative to [`level`][level].
-
## Core
-### [`levelup`][levelup]
-
-[![Last commit](https://img.shields.io/github/last-commit/Level/levelup)](https://github.com/Level/levelup) [![Contributors](https://img.shields.io/github/contributors/Level/levelup?color=brightgreen)](https://github.com/Level/levelup/graphs/contributors)
-
-The glue that holds everything together. Use this when you need a [custom or swappable store](#stores).
-
-### [`abstract-leveldown`][abstract-leveldown]
-
-[![Last commit](https://img.shields.io/github/last-commit/Level/abstract-leveldown)](https://github.com/Level/abstract-leveldown) [![Contributors](https://img.shields.io/github/contributors/Level/abstract-leveldown?color=brightgreen)](https://github.com/Level/abstract-leveldown/graphs/contributors)
-
-An abstract prototype matching the [`leveldown`][leveldown] API. Use this to implement your own store.
-
-### [`level-packager`][level-packager]
-
-[![Last commit](https://img.shields.io/github/last-commit/Level/packager)](https://github.com/Level/packager) [![Contributors](https://img.shields.io/github/contributors/Level/packager?color=brightgreen)](https://github.com/Level/packager/graphs/contributors)
-
-Package helper to export [a bundle](#bundles). Use this to create a new `level-*` bundle.
-
-## Stores
-
-**Modules that implement [`abstract-leveldown`][abstract-leveldown] as storage for [`levelup`][levelup].**
-
-### [`leveldown`][leveldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/leveldown)](https://github.com/Level/leveldown) [![Contributors](https://img.shields.io/github/contributors/Level/leveldown?color=brightgreen)](https://github.com/Level/leveldown/graphs/contributors)
-
-Backed by [LevelDB](https://github.com/google/leveldb).
-
-### [`memdown`][memdown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/memdown)](https://github.com/Level/memdown) [![Contributors](https://img.shields.io/github/contributors/Level/memdown?color=brightgreen)](https://github.com/Level/memdown/graphs/contributors)
-
-Backed by [in-memory RBTree](https://www.npmjs.com/package/functional-red-black-tree).
-
-### [`level-js`][level-js]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/level.js)](https://github.com/Level/level.js) [![Contributors](https://img.shields.io/github/contributors/Level/level.js?color=brightgreen)](https://github.com/Level/level.js/graphs/contributors)
-
-Backed by [IndexedDB](https://developer.mozilla.org/en-US/docs/IndexedDB).
-
-### [`rocksdb`][rocksdb]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/rocksdb)](https://github.com/Level/rocksdb) [![Contributors](https://img.shields.io/github/contributors/Level/rocksdb?color=brightgreen)](https://github.com/Level/rocksdb/graphs/contributors)
-
-Backed by [RocksDB](https://github.com/facebook/rocksdb/).
-
-### [`leveldown-hyper`][leveldown-hyper]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-5.0-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/leveldown-hyper)](https://github.com/Level/leveldown-hyper) [![Contributors](https://img.shields.io/github/contributors/Level/leveldown-hyper?color=brightgreen)](https://github.com/Level/leveldown-hyper/graphs/contributors)
-
-Backed by [HyperLevelDB](https://github.com/rescrv/HyperLevelDB).
-
-### [`medeadown`][medeadown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-3.0-red.svg) [![Last commit](https://img.shields.io/github/last-commit/kesla/medeadown)](https://github.com/kesla/medeadown) [![Contributors](https://img.shields.io/github/contributors/kesla/medeadown?color=brightgreen)](https://github.com/kesla/medeadown/graphs/contributors)
-
-Backed by [medea](https://github.com/argo/medea).
-
-### [`jsondown`][jsondown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.7-red.svg) [![Last commit](https://img.shields.io/github/last-commit/toolness/jsondown)](https://github.com/toolness/jsondown) [![Contributors](https://img.shields.io/github/contributors/toolness/jsondown?color=brightgreen)](https://github.com/toolness/jsondown/graphs/contributors)
-
-Backed by JSON on disk
-
-### [`asyncstorage-down`][asyncstorage-down]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.6-red.svg) [![Last commit](https://img.shields.io/github/last-commit/tradle/asyncstorage-down)](https://github.com/tradle/asyncstorage-down) [![Contributors](https://img.shields.io/github/contributors/tradle/asyncstorage-down?color=brightgreen)](https://github.com/tradle/asyncstorage-down/graphs/contributors)
-
-Backed by [AsyncStorage](https://facebook.github.io/react-native/docs/asyncstorage.html) (React Native).
-
-### [`mongodown`][mongodown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.6-red.svg) [![Last commit](https://img.shields.io/github/last-commit/watson/mongodown)](https://github.com/watson/mongodown) [![Contributors](https://img.shields.io/github/contributors/watson/mongodown?color=brightgreen)](https://github.com/watson/mongodown/graphs/contributors)
-
-Backed by [MongoDB](https://www.mongodb.com/).
-
-### [`sqldown`][sqldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.1-red.svg) [![Last commit](https://img.shields.io/github/last-commit/calvinmetcalf/sqldown)](https://github.com/calvinmetcalf/sqldown) [![Contributors](https://img.shields.io/github/contributors/calvinmetcalf/sqldown?color=brightgreen)](https://github.com/calvinmetcalf/sqldown/graphs/contributors)
-
-Backed by [`sqlite3`](https://www.npmjs.com/package/sqlite3), [`pg`](https://www.npmjs.com/package/pg), [`mysql`](https://www.npmjs.com/package/mysql) or WebSQL.
-
-### [`dynamo-down`][dynamo-down]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.1-red.svg) [![Last commit](https://img.shields.io/github/last-commit/jed/dynamo-down)](https://github.com/jed/dynamo-down) [![Contributors](https://img.shields.io/github/contributors/jed/dynamo-down?color=brightgreen)](https://github.com/jed/dynamo-down/graphs/contributors)
-
-Backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb).
-
-### [`azureleveldown`][azureleveldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.11-red.svg) [![Last commit](https://img.shields.io/github/last-commit/richorama/azureleveldown)](https://github.com/richorama/azureleveldown) [![Contributors](https://img.shields.io/github/contributors/richorama/azureleveldown?color=brightgreen)](https://github.com/richorama/azureleveldown/graphs/contributors)
-
-Backed by Windows Azure Table Storage.
-
-### [`fruitdown`][fruitdown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.12-red.svg) [![Last commit](https://img.shields.io/github/last-commit/nolanlawson/fruitdown)](https://github.com/nolanlawson/fruitdown) [![Contributors](https://img.shields.io/github/contributors/nolanlawson/fruitdown?color=brightgreen)](https://github.com/nolanlawson/fruitdown/graphs/contributors)
-
-Backed by IndexedDB (Apple).
-
-### [`localstorage-down`][localstorage-down]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.12-red.svg) [![Last commit](https://img.shields.io/github/last-commit/No9/localstorage-down)](https://github.com/No9/localstorage-down) [![Contributors](https://img.shields.io/github/contributors/No9/localstorage-down?color=brightgreen)](https://github.com/No9/localstorage-down/graphs/contributors)
-
-Backed by [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage).
-
-### [`riakdown`][riakdown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.12-red.svg) [![Last commit](https://img.shields.io/github/last-commit/nlf/riakdown)](https://github.com/nlf/riakdown) [![Contributors](https://img.shields.io/github/contributors/nlf/riakdown?color=brightgreen)](https://github.com/nlf/riakdown/graphs/contributors)
-
-Backed by [riakpbc](https://github.com/nlf/riakpbc).
-
-### [`mysqldown`][mysqldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.7-red.svg) [![Last commit](https://img.shields.io/github/last-commit/kesla/mysqldown)](https://github.com/kesla/mysqldown) [![Contributors](https://img.shields.io/github/contributors/kesla/mysqldown?color=brightgreen)](https://github.com/kesla/mysqldown/graphs/contributors)
-
-Backed by [MySQL](https://www.mysql.com/).
-
-### [`redisdown`][redisdown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-*-red.svg) [![Last commit](https://img.shields.io/github/last-commit/hmalphettes/redisdown)](https://github.com/hmalphettes/redisdown) [![Contributors](https://img.shields.io/github/contributors/hmalphettes/redisdown?color=brightgreen)](https://github.com/hmalphettes/redisdown/graphs/contributors)
-
-Backed by [Redis](https://redis.io/).
-
-### [`leveldown-basho`][leveldown-basho]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-missing-lightgrey.svg)
-
-Backed by [Basho's LevelDB fork](https://github.com/basho/leveldb).
-
-### [`sheet-down`][sheet-down]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-missing-lightgrey.svg) [![Last commit](https://img.shields.io/github/last-commit/jed/sheet-down)](https://github.com/jed/sheet-down) [![Contributors](https://img.shields.io/github/contributors/jed/sheet-down?color=brightgreen)](https://github.com/jed/sheet-down/graphs/contributors)
-
-Backed by [Google Sheets](https://docs.google.com/spreadsheets).
-
-### [`indexeddown`][indexeddown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-4.0-red.svg) [![Last commit](https://img.shields.io/github/last-commit/kapetan/indexeddown)](https://github.com/kapetan/indexeddown) [![Contributors](https://img.shields.io/github/contributors/kapetan/indexeddown?color=brightgreen)](https://github.com/kapetan/indexeddown/graphs/contributors)
-
-Backed by IndexedDB.
-
-### [`lmdb-leveldown`][lmdb-leveldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-4.0-red.svg) [![Last commit](https://img.shields.io/github/last-commit/chrbala/lmdb-leveldown)](https://github.com/chrbala/lmdb-leveldown) [![Contributors](https://img.shields.io/github/contributors/chrbala/lmdb-leveldown?color=brightgreen)](https://github.com/chrbala/lmdb-leveldown/graphs/contributors)
-
-Backed by LMDB.
-
-### [`localdown`][localdown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-4.0-red.svg) [![Last commit](https://img.shields.io/github/last-commit/bhoriuchi/localdown)](https://github.com/bhoriuchi/localdown) [![Contributors](https://img.shields.io/github/contributors/bhoriuchi/localdown?color=brightgreen)](https://github.com/bhoriuchi/localdown/graphs/contributors)
-
-Backed by localStorage in Node.js.
-
-### [`aerospike-leveldown`][aerospike-leveldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.7-red.svg) [![Last commit](https://img.shields.io/github/last-commit/ProjectThor/aerospikedown)](https://github.com/ProjectThor/aerospikedown) [![Contributors](https://img.shields.io/github/contributors/ProjectThor/aerospikedown?color=brightgreen)](https://github.com/ProjectThor/aerospikedown/graphs/contributors)
-
-Backed by Aerospike.
-
-### [`s3leveldown`][s3leveldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.3-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/loune/s3leveldown)](https://github.com/loune/s3leveldown) [![Contributors](https://img.shields.io/github/contributors/loune/s3leveldown?color=brightgreen)](https://github.com/loune/s3leveldown/graphs/contributors)
-
-Backed by [AWS S3](https://aws.amazon.com/s3/).
-
-### [`gaiadown-ts`][gaiadown-ts]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.0-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/acidleroy/gaiadown-ts)](https://github.com/acidleroy/gaiadown-ts) [![Contributors](https://img.shields.io/github/contributors/acidleroy/gaiadown-ts?color=brightgreen)](https://github.com/acidleroy/gaiadown-ts/graphs/contributors)
-
-Backed by [Gaia](https://github.com/blockstack/gaia).
-
-### [`dynamodb-leveldown`][dynamodb-leveldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.3-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/GioCirque/DynamoDb-LevelDown)](https://github.com/GioCirque/DynamoDb-LevelDown) [![Contributors](https://img.shields.io/github/contributors/GioCirque/DynamoDb-LevelDown?color=brightgreen)](https://github.com/GioCirque/DynamoDb-LevelDown/graphs/contributors)
-
-Backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb/).
-
-### [`localforagedown`][localforagedown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.2-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/KsRyY/localforagedown)](https://github.com/KsRyY/localforagedown) [![Contributors](https://img.shields.io/github/contributors/KsRyY/localforagedown?color=brightgreen)](https://github.com/KsRyY/localforagedown/graphs/contributors)
-
-Backed by [localForage](https://github.com/localForage/localForage/).
-
-### [`react-native-leveldown`][react-native-leveldown]
-
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.3-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/andymatuschak/react-native-leveldown)](https://github.com/andymatuschak/react-native-leveldown) [![Contributors](https://img.shields.io/github/contributors/andymatuschak/react-native-leveldown?color=brightgreen)](https://github.com/andymatuschak/react-native-leveldown/graphs/contributors)
+### [`abstract-level`][abstract-level]
-Backed by [LevelDB](https://github.com/google/leveldb) (React Native).
+[![npm package version](https://img.shields.io/npm/v/abstract-level)](https://www.npmjs.com/package/abstract-level) [![npm downloads](https://img.shields.io/npm/dw/abstract-level)](https://www.npmjs.com/package/abstract-level) [![License](https://img.shields.io/npm/l/abstract-level?color=blue)](https://www.npmjs.com/package/abstract-level) [![Last commit](https://img.shields.io/github/last-commit/Level/abstract-level?color=brightgreen)](https://github.com/Level/abstract-level) [![Contributors](https://img.shields.io/github/contributors/Level/abstract-level?color=blue)](https://github.com/Level/abstract-level/graphs/contributors)
-### [`networked-hyperbeedown`][networked-hyperbeedown]
+Abstract class for a lexicographically sorted key-value database.
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-missing-lightgrey.svg) [![Last commit](https://img.shields.io/github/last-commit/RangerMauve/networked-hyperbeedown)](https://github.com/RangerMauve/networked-hyperbeedown) [![Contributors](https://img.shields.io/github/contributors/RangerMauve/networked-hyperbeedown?color=brightgreen)](https://github.com/RangerMauve/networked-hyperbeedown/graphs/contributors)
+## Storage
-Backed by [Hyperbee](https://github.com/hypercore-protocol/hyperbee/).
+**Modules that implement [`abstract-level`][abstract-level].**
-## Layers
+### [`level`][level]
-**Modules that implement [`abstract-leveldown`][abstract-leveldown] to wrap another [`abstract-leveldown`][abstract-leveldown]. This is the preferred extension point.**
+[![npm package version](https://img.shields.io/npm/v/level)](https://www.npmjs.com/package/level) [![npm downloads](https://img.shields.io/npm/dw/level)](https://www.npmjs.com/package/level) [![License](https://img.shields.io/npm/l/level?color=blue)](https://www.npmjs.com/package/level) [![Last commit](https://img.shields.io/github/last-commit/Level/level?color=brightgreen)](https://github.com/Level/level) [![Contributors](https://img.shields.io/github/contributors/Level/level?color=blue)](https://github.com/Level/level/graphs/contributors) ![abstract-level](https://img.shields.io/badge/abstract--level-2.0-brightgreen.svg)
-### [`encoding-down`][encoding-down]
+Universal [`abstract-level`][abstract-level] database for Node.js and browsers. Main entry point for beginners.
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/encoding-down)](https://github.com/Level/encoding-down) [![Contributors](https://img.shields.io/github/contributors/Level/encoding-down?color=brightgreen)](https://github.com/Level/encoding-down/graphs/contributors)
+### [`classic-level`][classic-level]
-Provides key/value encoding.
+[![npm package version](https://img.shields.io/npm/v/classic-level)](https://www.npmjs.com/package/classic-level) [![npm downloads](https://img.shields.io/npm/dw/classic-level)](https://www.npmjs.com/package/classic-level) [![License](https://img.shields.io/npm/l/classic-level?color=blue)](https://www.npmjs.com/package/classic-level) [![Last commit](https://img.shields.io/github/last-commit/Level/classic-level?color=brightgreen)](https://github.com/Level/classic-level) [![Contributors](https://img.shields.io/github/contributors/Level/classic-level?color=blue)](https://github.com/Level/classic-level/graphs/contributors) ![abstract-level](https://img.shields.io/badge/abstract--level-2.0-brightgreen.svg)
-### [`@adorsys/encrypt-down`][@adorsys/encrypt-down]
+An [`abstract-level`][abstract-level] database backed by LevelDB.
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.3-orange.svg) [![Last commit](https://img.shields.io/github/last-commit/adorsys/encrypt-down)](https://github.com/adorsys/encrypt-down) [![Contributors](https://img.shields.io/github/contributors/adorsys/encrypt-down?color=brightgreen)](https://github.com/adorsys/encrypt-down/graphs/contributors)
+### [`browser-level`][browser-level]
-Provides encryption for values.
+[![npm package version](https://img.shields.io/npm/v/browser-level)](https://www.npmjs.com/package/browser-level) [![npm downloads](https://img.shields.io/npm/dw/browser-level)](https://www.npmjs.com/package/browser-level) [![License](https://img.shields.io/npm/l/browser-level?color=blue)](https://www.npmjs.com/package/browser-level) [![Last commit](https://img.shields.io/github/last-commit/Level/browser-level?color=brightgreen)](https://github.com/Level/browser-level) [![Contributors](https://img.shields.io/github/contributors/Level/browser-level?color=blue)](https://github.com/Level/browser-level/graphs/contributors) ![abstract-level](https://img.shields.io/badge/abstract--level-2.0-brightgreen.svg)
-### [`deferred-leveldown`][deferred-leveldown]
+An [`abstract-level`][abstract-level] database for browsers, backed by IndexedDB.
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-brightgreen.svg) [![Last commit](https://img.shields.io/github/last-commit/Level/deferred-leveldown)](https://github.com/Level/deferred-leveldown) [![Contributors](https://img.shields.io/github/contributors/Level/deferred-leveldown?color=brightgreen)](https://github.com/Level/deferred-leveldown/graphs/contributors)
+### [`memory-level`][memory-level]
-Handles delayed-open. Built into [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/memory-level)](https://www.npmjs.com/package/memory-level) [![npm downloads](https://img.shields.io/npm/dw/memory-level)](https://www.npmjs.com/package/memory-level) [![License](https://img.shields.io/npm/l/memory-level?color=blue)](https://www.npmjs.com/package/memory-level) [![Last commit](https://img.shields.io/github/last-commit/Level/memory-level?color=brightgreen)](https://github.com/Level/memory-level) [![Contributors](https://img.shields.io/github/contributors/Level/memory-level?color=blue)](https://github.com/Level/memory-level/graphs/contributors) ![abstract-level](https://img.shields.io/badge/abstract--level-2.0-brightgreen.svg)
-### [`level-cowdown`][level-cowdown]
+In-memory [`abstract-level`][abstract-level] database for Node.js and browsers.
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.4-red.svg) [![Last commit](https://img.shields.io/github/last-commit/substack/level-cowdown)](https://github.com/substack/level-cowdown) [![Contributors](https://img.shields.io/github/contributors/substack/level-cowdown?color=brightgreen)](https://github.com/substack/level-cowdown/graphs/contributors)
+## Encodings
-Copy-on-write [`abstract-leveldown`][abstract-leveldown] layer.
+```js
+// Example of a custom encoding
+const { Level } = require('level')
+const charwise = require('charwise')
-### [`abstract-stream-leveldown`][abstract-stream-leveldown]
+const db = new Level('./db', {
+ keyEncoding: charwise
+})
-![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.1-red.svg) [![Last commit](https://img.shields.io/github/last-commit/jed/abstract-stream-leveldown)](https://github.com/jed/abstract-stream-leveldown) [![Contributors](https://img.shields.io/github/contributors/jed/abstract-stream-leveldown?color=brightgreen)](https://github.com/jed/abstract-stream-leveldown/graphs/contributors)
+await db.put(['users', 2], 'example')
+```
-A stream-based abstract prototype.
+### [`protocol-buffers`][protocol-buffers]
-## Encodings
+[![npm package version](https://img.shields.io/npm/v/protocol-buffers)](https://www.npmjs.com/package/protocol-buffers) [![npm downloads](https://img.shields.io/npm/dw/protocol-buffers)](https://www.npmjs.com/package/protocol-buffers) [![License](https://img.shields.io/npm/l/protocol-buffers?color=blue)](https://www.npmjs.com/package/protocol-buffers) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/protocol-buffers?color=brightgreen)](https://github.com/mafintosh/protocol-buffers) [![Contributors](https://img.shields.io/github/contributors/mafintosh/protocol-buffers?color=blue)](https://github.com/mafintosh/protocol-buffers/graphs/contributors)
-**Custom [`level-codec`][level-codec] compatible encodings for use with [`encoding-down`][encoding-down].**
+[Protocol Buffers](https://developers.google.com/protocol-buffers/) for Node.js. Compiled messages are valid as encodings.
### [`charwise`][charwise]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/charwise)](https://github.com/dominictarr/charwise) [![Contributors](https://img.shields.io/github/contributors/dominictarr/charwise?color=brightgreen)](https://github.com/dominictarr/charwise/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/charwise)](https://www.npmjs.com/package/charwise) [![npm downloads](https://img.shields.io/npm/dw/charwise)](https://www.npmjs.com/package/charwise) [![License](https://img.shields.io/npm/l/charwise?color=blue)](https://www.npmjs.com/package/charwise) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/charwise?color=brightgreen)](https://github.com/dominictarr/charwise) [![Contributors](https://img.shields.io/github/contributors/dominictarr/charwise?color=blue)](https://github.com/dominictarr/charwise/graphs/contributors)
-Encode/decode with same encoded sort order as [`bytewise`][bytewise].
+Encode / decode with same encoded sort order as [`bytewise`][bytewise].
### [`bytewise`][bytewise]
-[![Last commit](https://img.shields.io/github/last-commit/deanlandolt/bytewise)](https://github.com/deanlandolt/bytewise) [![Contributors](https://img.shields.io/github/contributors/deanlandolt/bytewise?color=brightgreen)](https://github.com/deanlandolt/bytewise/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/bytewise)](https://www.npmjs.com/package/bytewise) [![npm downloads](https://img.shields.io/npm/dw/bytewise)](https://www.npmjs.com/package/bytewise) [![License](https://img.shields.io/npm/l/bytewise?color=blue)](https://www.npmjs.com/package/bytewise) [![Last commit](https://img.shields.io/github/last-commit/deanlandolt/bytewise)](https://github.com/deanlandolt/bytewise) [![Contributors](https://img.shields.io/github/contributors/deanlandolt/bytewise?color=blue)](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.
-### [`protocol-buffers`][protocol-buffers]
-
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/protocol-buffers)](https://github.com/mafintosh/protocol-buffers) [![Contributors](https://img.shields.io/github/contributors/mafintosh/protocol-buffers?color=brightgreen)](https://github.com/mafintosh/protocol-buffers/graphs/contributors)
-
-[Protocol Buffers](https://developers.google.com/protocol-buffers/) for Node.js. Compiled messages are [`level-codec`][level-codec] compatible encodings.
-
### [`lexicographic-integer-encoding`][lexicographic-integer-encoding]
-[![Last commit](https://img.shields.io/github/last-commit/vweevers/lexicographic-integer-encoding)](https://github.com/vweevers/lexicographic-integer-encoding) [![Contributors](https://img.shields.io/github/contributors/vweevers/lexicographic-integer-encoding?color=brightgreen)](https://github.com/vweevers/lexicographic-integer-encoding/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/lexicographic-integer-encoding)](https://www.npmjs.com/package/lexicographic-integer-encoding) [![npm downloads](https://img.shields.io/npm/dw/lexicographic-integer-encoding)](https://www.npmjs.com/package/lexicographic-integer-encoding) [![License](https://img.shields.io/npm/l/lexicographic-integer-encoding?color=blue)](https://www.npmjs.com/package/lexicographic-integer-encoding) [![Last commit](https://img.shields.io/github/last-commit/vweevers/lexicographic-integer-encoding?color=brightgreen)](https://github.com/vweevers/lexicographic-integer-encoding) [![Contributors](https://img.shields.io/github/contributors/vweevers/lexicographic-integer-encoding?color=blue)](https://github.com/vweevers/lexicographic-integer-encoding/graphs/contributors)
Wraps [`lexicographic-integer`](https://github.com/substack/lexicographic-integer).
-## Sublevels
-
-**Modules related to splitting a database into sections a.k.a. sublevels.**
-
-### [`subleveldown`][subleveldown]
-
-[![Last commit](https://img.shields.io/github/last-commit/Level/subleveldown)](https://github.com/Level/subleveldown) [![Contributors](https://img.shields.io/github/contributors/Level/subleveldown?color=brightgreen)](https://github.com/Level/subleveldown/graphs/contributors)
-
-Split a [`levelup`][levelup] database into sublevels with their own keyspace, encoding and events.
-
-### [`level-temp`][level-temp]
-
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-temp)](https://github.com/mafintosh/level-temp) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-temp?color=brightgreen)](https://github.com/mafintosh/level-temp/graphs/contributors)
-
-Create a temporary [`subleveldown`][subleveldown] sublevel that is guaranteed to be empty.
-
-### [`level-mount`][level-mount]
-
-[![Last commit](https://img.shields.io/github/last-commit/u8sand/level-mount)](https://github.com/u8sand/level-mount) [![Contributors](https://img.shields.io/github/contributors/u8sand/level-mount?color=brightgreen)](https://github.com/u8sand/level-mount/graphs/contributors)
-
-Mount multiple [`abstract-leveldown`][abstract-leveldown] stores by key prefix onto a single store. Can be used with [`subleveldown`][subleveldown].
-
-### [`bytespace`][bytespace]
-
-[![Last commit](https://img.shields.io/github/last-commit/deanlandolt/bytespace)](https://github.com/deanlandolt/bytespace) [![Contributors](https://img.shields.io/github/contributors/deanlandolt/bytespace?color=brightgreen)](https://github.com/deanlandolt/bytespace/graphs/contributors)
-
-Keypath subspaces prefixed with [`bytewise`][bytewise] tuples. Similar to [`level-sublevel`][level-sublevel]. NB. [`bytewise`][bytewise] - and thus [`bytespace`][bytespace] - can be slow. Consider using [`subleveldown`][subleveldown] paired with the [`charwise`][charwise] encoding instead.
-
-### [`level-sublevel`][level-sublevel]
-
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-sublevel)](https://github.com/dominictarr/level-sublevel) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-sublevel?color=brightgreen)](https://github.com/dominictarr/level-sublevel/graphs/contributors)
-
-Adds the ability to create subsections with the same API as [`levelup`][levelup], but only write/read to a prefixed section, or bucket, of the key-space. Each section also has [`level-hooks`][level-hooks] installed. NB. No longer maintained. We recommend [`subleveldown`][subleveldown] instead.
-
-### [`sublevel-prefixer`][sublevel-prefixer]
+## Streams
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/sublevel-prefixer)](https://github.com/mafintosh/sublevel-prefixer) [![Contributors](https://img.shields.io/github/contributors/mafintosh/sublevel-prefixer?color=brightgreen)](https://github.com/mafintosh/sublevel-prefixer/graphs/contributors)
+**[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.**
-Utility to prefix a key with a sublevel prefix.
+### [`level-read-stream`][level-read-stream]
-### [`level-sublevel-stream`][level-sublevel-stream]
+[![npm package version](https://img.shields.io/npm/v/level-read-stream)](https://www.npmjs.com/package/level-read-stream) [![npm downloads](https://img.shields.io/npm/dw/level-read-stream)](https://www.npmjs.com/package/level-read-stream) [![License](https://img.shields.io/npm/l/level-read-stream?color=blue)](https://www.npmjs.com/package/level-read-stream) [![Last commit](https://img.shields.io/github/last-commit/Level/read-stream?color=brightgreen)](https://github.com/Level/read-stream) [![Contributors](https://img.shields.io/github/contributors/Level/read-stream?color=blue)](https://github.com/Level/read-stream/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sublevel-stream)](https://github.com/juliangruber/level-sublevel-stream) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sublevel-stream?color=brightgreen)](https://github.com/juliangruber/level-sublevel-stream/graphs/contributors)
+Read from an [`abstract-level`][abstract-level] database using Node.js streams.
-Find [`level-sublevel`][level-sublevel] sublevels, not requiring them to be in memory already.
+### [`level-web-stream`][level-web-stream]
-### [`level-subtree`][level-subtree]
+[![npm package version](https://img.shields.io/npm/v/level-web-stream)](https://www.npmjs.com/package/level-web-stream) [![npm downloads](https://img.shields.io/npm/dw/level-web-stream)](https://www.npmjs.com/package/level-web-stream) [![License](https://img.shields.io/npm/l/level-web-stream?color=blue)](https://www.npmjs.com/package/level-web-stream) [![Last commit](https://img.shields.io/github/last-commit/Level/web-stream)](https://github.com/Level/web-stream) [![Contributors](https://img.shields.io/github/contributors/Level/web-stream?color=blue)](https://github.com/Level/web-stream/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-subtree)](https://github.com/hij1nx/level-subtree) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-subtree?color=brightgreen)](https://github.com/hij1nx/level-subtree/graphs/contributors)
+Read from an [`abstract-level`][abstract-level] database using Web Streams.
-Generate a tree from [`level-sublevel`][level-sublevel] sublevels, useful when there is no manifest.
+### [`level-ws`][level-ws]
-### [`level-superlevel`][level-superlevel]
+[![npm package version](https://img.shields.io/npm/v/level-ws)](https://www.npmjs.com/package/level-ws) [![npm downloads](https://img.shields.io/npm/dw/level-ws)](https://www.npmjs.com/package/level-ws) [![License](https://img.shields.io/npm/l/level-ws?color=blue)](https://www.npmjs.com/package/level-ws) [![Last commit](https://img.shields.io/github/last-commit/Level/level-ws)](https://github.com/Level/level-ws) [![Contributors](https://img.shields.io/github/contributors/Level/level-ws?color=blue)](https://github.com/Level/level-ws/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/randymized/level-superlevel)](https://github.com/randymized/level-superlevel) [![Contributors](https://img.shields.io/github/contributors/randymized/level-superlevel?color=brightgreen)](https://github.com/randymized/level-superlevel/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).
-Superlevel adds a "super" level that allows accessing the entire database, discovering [`level-sublevel`][level-sublevel] sublevels and browsing the database without knowledge of the sublevel structure.
+## Shared Access
-### [`level-subkey`][level-subkey]
+### [`many-level`][many-level]
-[![Last commit](https://img.shields.io/github/last-commit/snowyu/level-subkey)](https://github.com/snowyu/level-subkey) [![Contributors](https://img.shields.io/github/contributors/snowyu/level-subkey?color=brightgreen)](https://github.com/snowyu/level-subkey/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/many-level)](https://www.npmjs.com/package/many-level) [![npm downloads](https://img.shields.io/npm/dw/many-level)](https://www.npmjs.com/package/many-level) [![License](https://img.shields.io/npm/l/many-level?color=blue)](https://www.npmjs.com/package/many-level) [![Last commit](https://img.shields.io/github/last-commit/Level/many-level)](https://github.com/Level/many-level) [![Contributors](https://img.shields.io/github/contributors/Level/many-level?color=blue)](https://github.com/Level/many-level/graphs/contributors) ![abstract-level](https://img.shields.io/badge/abstract--level-1.0-orange.svg)
-Use path-like keys to separate sections of [`levelup`][levelup], with hooks. Adapted from [`level-sublevel`][level-sublevel].
+Share an [`abstract-level`][abstract-level] database over the network or other kind of stream. Supersedes [`multileveldown`][multileveldown] and [`multilevel`][multilevel].
-### [`level-mirror`][level-mirror]
+### [`rave-level`][rave-level]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-mirror)](https://github.com/juliangruber/level-mirror) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-mirror?color=brightgreen)](https://github.com/juliangruber/level-mirror/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/rave-level)](https://www.npmjs.com/package/rave-level) [![npm downloads](https://img.shields.io/npm/dw/rave-level)](https://www.npmjs.com/package/rave-level) [![License](https://img.shields.io/npm/l/rave-level?color=blue)](https://www.npmjs.com/package/rave-level) [![Last commit](https://img.shields.io/github/last-commit/Level/rave-level)](https://github.com/Level/rave-level) [![Contributors](https://img.shields.io/github/contributors/Level/rave-level?color=blue)](https://github.com/Level/rave-level/graphs/contributors) ![abstract-level](https://img.shields.io/badge/abstract--level-1.0-orange.svg)
-Mirror and optionally transform data from one [`level-sublevel`][level-sublevel] sublevel into another.
+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.**
+**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]
-[![Last commit](https://img.shields.io/github/last-commit/hypermodules/level-auto-index)](https://github.com/hypermodules/level-auto-index) [![Contributors](https://img.shields.io/github/contributors/hypermodules/level-auto-index?color=brightgreen)](https://github.com/hypermodules/level-auto-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-auto-index)](https://www.npmjs.com/package/level-auto-index) [![npm downloads](https://img.shields.io/npm/dw/level-auto-index)](https://www.npmjs.com/package/level-auto-index) [![License](https://img.shields.io/npm/l/level-auto-index?color=blue)](https://www.npmjs.com/package/level-auto-index) [![Last commit](https://img.shields.io/github/last-commit/hypermodules/level-auto-index)](https://github.com/hypermodules/level-auto-index) [![Contributors](https://img.shields.io/github/contributors/hypermodules/level-auto-index?color=blue)](https://github.com/hypermodules/level-auto-index/graphs/contributors)
Automatic secondary indexing for [`levelup`][levelup] and [`subleveldown`][subleveldown].
### [`jsonquery`][jsonquery]
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/jsonquery)](https://github.com/eugeneware/jsonquery) [![Contributors](https://img.shields.io/github/contributors/eugeneware/jsonquery?color=brightgreen)](https://github.com/eugeneware/jsonquery/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/jsonquery)](https://www.npmjs.com/package/jsonquery) [![npm downloads](https://img.shields.io/npm/dw/jsonquery)](https://www.npmjs.com/package/jsonquery) [![License](https://img.shields.io/npm/l/jsonquery?color=blue)](https://www.npmjs.com/package/jsonquery) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/jsonquery)](https://github.com/eugeneware/jsonquery) [![Contributors](https://img.shields.io/github/contributors/eugeneware/jsonquery?color=blue)](https://github.com/eugeneware/jsonquery/graphs/contributors)
Query [`levelup`][levelup] with a MongoDB-like query API that returns streams.
### [`jsonquery-engine`][jsonquery-engine]
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/jsonquery-engine)](https://github.com/eugeneware/jsonquery-engine) [![Contributors](https://img.shields.io/github/contributors/eugeneware/jsonquery-engine?color=brightgreen)](https://github.com/eugeneware/jsonquery-engine/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/jsonquery-engine)](https://www.npmjs.com/package/jsonquery-engine) [![npm downloads](https://img.shields.io/npm/dw/jsonquery-engine)](https://www.npmjs.com/package/jsonquery-engine) [![License](https://img.shields.io/npm/l/jsonquery-engine?color=blue)](https://www.npmjs.com/package/jsonquery-engine) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/jsonquery-engine)](https://github.com/eugeneware/jsonquery-engine) [![Contributors](https://img.shields.io/github/contributors/eugeneware/jsonquery-engine?color=blue)](https://github.com/eugeneware/jsonquery-engine/graphs/contributors)
A full MongoDB query language implementation with indexes for querying [`levelup`][levelup].
### [`level-indico`][level-indico]
-[![Last commit](https://img.shields.io/github/last-commit/mariocasciaro/level-indico)](https://github.com/mariocasciaro/level-indico) [![Contributors](https://img.shields.io/github/contributors/mariocasciaro/level-indico?color=brightgreen)](https://github.com/mariocasciaro/level-indico/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-indico)](https://www.npmjs.com/package/level-indico) [![npm downloads](https://img.shields.io/npm/dw/level-indico)](https://www.npmjs.com/package/level-indico) [![License](https://img.shields.io/npm/l/level-indico?color=blue)](https://www.npmjs.com/package/level-indico) [![Last commit](https://img.shields.io/github/last-commit/mariocasciaro/level-indico)](https://github.com/mariocasciaro/level-indico) [![Contributors](https://img.shields.io/github/contributors/mariocasciaro/level-indico?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-inverted-index)](https://github.com/dominictarr/level-inverted-index) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-inverted-index?color=brightgreen)](https://github.com/dominictarr/level-inverted-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-inverted-index)](https://www.npmjs.com/package/level-inverted-index) [![npm downloads](https://img.shields.io/npm/dw/level-inverted-index)](https://www.npmjs.com/package/level-inverted-index) [![License](https://img.shields.io/npm/l/level-inverted-index?color=blue)](https://www.npmjs.com/package/level-inverted-index) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-inverted-index)](https://github.com/dominictarr/level-inverted-index) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-inverted-index?color=blue)](https://github.com/dominictarr/level-inverted-index/graphs/contributors)
Create an inverted index for full-text search.
### [`map-reduce`][map-reduce]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/map-reduce)](https://github.com/dominictarr/map-reduce) [![Contributors](https://img.shields.io/github/contributors/dominictarr/map-reduce?color=brightgreen)](https://github.com/dominictarr/map-reduce/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/map-reduce)](https://www.npmjs.com/package/map-reduce) [![npm downloads](https://img.shields.io/npm/dw/map-reduce)](https://www.npmjs.com/package/map-reduce) [![License](https://img.shields.io/npm/l/map-reduce?color=blue)](https://www.npmjs.com/package/map-reduce) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/map-reduce)](https://github.com/dominictarr/map-reduce) [![Contributors](https://img.shields.io/github/contributors/dominictarr/map-reduce?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-map-merge)](https://github.com/dominictarr/level-map-merge) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-map-merge?color=brightgreen)](https://github.com/dominictarr/level-map-merge/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-map-merge)](https://www.npmjs.com/package/level-map-merge) [![npm downloads](https://img.shields.io/npm/dw/level-map-merge)](https://www.npmjs.com/package/level-map-merge) [![License](https://img.shields.io/npm/l/level-map-merge?color=blue)](https://www.npmjs.com/package/level-map-merge) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-map-merge)](https://github.com/dominictarr/level-map-merge) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-map-merge?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-queryengine)](https://github.com/eugeneware/level-queryengine) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-queryengine?color=brightgreen)](https://github.com/eugeneware/level-queryengine/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-queryengine)](https://www.npmjs.com/package/level-queryengine) [![npm downloads](https://img.shields.io/npm/dw/level-queryengine)](https://www.npmjs.com/package/level-queryengine) [![License](https://img.shields.io/npm/l/level-queryengine?color=blue)](https://www.npmjs.com/package/level-queryengine) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-queryengine)](https://github.com/eugeneware/level-queryengine) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-queryengine?color=blue)](https://github.com/eugeneware/level-queryengine/graphs/contributors)
A generic pluggable query-engine system (that supports indexes) for [`levelup`][levelup].
### [`level-trigger`][level-trigger]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-trigger)](https://github.com/dominictarr/level-trigger) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-trigger?color=brightgreen)](https://github.com/dominictarr/level-trigger/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-trigger)](https://www.npmjs.com/package/level-trigger) [![npm downloads](https://img.shields.io/npm/dw/level-trigger)](https://www.npmjs.com/package/level-trigger) [![License](https://img.shields.io/npm/l/level-trigger?color=blue)](https://www.npmjs.com/package/level-trigger) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-trigger)](https://github.com/dominictarr/level-trigger) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-trigger?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/levels)](https://github.com/eugeneware/levels) [![Contributors](https://img.shields.io/github/contributors/eugeneware/levels?color=brightgreen)](https://github.com/eugeneware/levels/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/levels)](https://www.npmjs.com/package/levels) [![npm downloads](https://img.shields.io/npm/dw/levels)](https://www.npmjs.com/package/levels) [![License](https://img.shields.io/npm/l/levels?color=blue)](https://www.npmjs.com/package/levels) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/levels)](https://github.com/eugeneware/levels) [![Contributors](https://img.shields.io/github/contributors/eugeneware/levels?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/ryanramage/map-reduce-chained)](https://github.com/ryanramage/map-reduce-chained) [![Contributors](https://img.shields.io/github/contributors/ryanramage/map-reduce-chained?color=brightgreen)](https://github.com/ryanramage/map-reduce-chained/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/map-reduce-chained)](https://www.npmjs.com/package/map-reduce-chained) [![npm downloads](https://img.shields.io/npm/dw/map-reduce-chained)](https://www.npmjs.com/package/map-reduce-chained) [![License](https://img.shields.io/npm/l/map-reduce-chained?color=blue)](https://www.npmjs.com/package/map-reduce-chained) [![Last commit](https://img.shields.io/github/last-commit/ryanramage/map-reduce-chained)](https://github.com/ryanramage/map-reduce-chained) [![Contributors](https://img.shields.io/github/contributors/ryanramage/map-reduce-chained?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/path-engine)](https://github.com/eugeneware/path-engine) [![Contributors](https://img.shields.io/github/contributors/eugeneware/path-engine?color=brightgreen)](https://github.com/eugeneware/path-engine/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/path-engine)](https://www.npmjs.com/package/path-engine) [![npm downloads](https://img.shields.io/npm/dw/path-engine)](https://www.npmjs.com/package/path-engine) [![License](https://img.shields.io/npm/l/path-engine?color=blue)](https://www.npmjs.com/package/path-engine) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/path-engine)](https://github.com/eugeneware/path-engine) [![Contributors](https://img.shields.io/github/contributors/eugeneware/path-engine?color=blue)](https://github.com/eugeneware/path-engine/graphs/contributors)
Query [`levelup`][levelup] using a JavaScript property path array syntax with indexes.
### [`subindex`][subindex]
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/subindex)](https://github.com/eugeneware/subindex) [![Contributors](https://img.shields.io/github/contributors/eugeneware/subindex?color=brightgreen)](https://github.com/eugeneware/subindex/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/subindex)](https://www.npmjs.com/package/subindex) [![npm downloads](https://img.shields.io/npm/dw/subindex)](https://www.npmjs.com/package/subindex) [![License](https://img.shields.io/npm/l/subindex?color=blue)](https://www.npmjs.com/package/subindex) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/subindex)](https://github.com/eugeneware/subindex) [![Contributors](https://img.shields.io/github/contributors/eugeneware/subindex?color=blue)](https://github.com/eugeneware/subindex/graphs/contributors)
Generic pluggable indexing system for [`levelup`][levelup].
### [`level-sec`][level-sec]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sec)](https://github.com/juliangruber/level-sec) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sec?color=brightgreen)](https://github.com/juliangruber/level-sec/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-sec)](https://www.npmjs.com/package/level-sec) [![npm downloads](https://img.shields.io/npm/dw/level-sec)](https://www.npmjs.com/package/level-sec) [![License](https://img.shields.io/npm/l/level-sec?color=blue)](https://www.npmjs.com/package/level-sec) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sec)](https://github.com/juliangruber/level-sec) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sec?color=blue)](https://github.com/juliangruber/level-sec/graphs/contributors)
High-level API for creating secondary indexes.
### [`level-secondary`][level-secondary]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-secondary)](https://github.com/juliangruber/level-secondary) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-secondary?color=brightgreen)](https://github.com/juliangruber/level-secondary/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-secondary)](https://www.npmjs.com/package/level-secondary) [![npm downloads](https://img.shields.io/npm/dw/level-secondary)](https://www.npmjs.com/package/level-secondary) [![License](https://img.shields.io/npm/l/level-secondary?color=blue)](https://www.npmjs.com/package/level-secondary) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-secondary)](https://github.com/juliangruber/level-secondary) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-secondary?color=blue)](https://github.com/juliangruber/level-secondary/graphs/contributors)
Create and query secondary indexes.
### [`inverted-index`][inverted-index]
-[![Last commit](https://img.shields.io/github/last-commit/kordon/inverted)](https://github.com/kordon/inverted) [![Contributors](https://img.shields.io/github/contributors/kordon/inverted?color=brightgreen)](https://github.com/kordon/inverted/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/inverted-index)](https://www.npmjs.com/package/inverted-index) [![npm downloads](https://img.shields.io/npm/dw/inverted-index)](https://www.npmjs.com/package/inverted-index) [![License](https://img.shields.io/npm/l/inverted-index?color=blue)](https://www.npmjs.com/package/inverted-index) [![Last commit](https://img.shields.io/github/last-commit/kordon/inverted)](https://github.com/kordon/inverted) [![Contributors](https://img.shields.io/github/contributors/kordon/inverted?color=blue)](https://github.com/kordon/inverted/graphs/contributors)
Inverted index built upon [`levelup`][levelup].
### [`level-index-update`][level-index-update]
-[![Last commit](https://img.shields.io/github/last-commit/binocarlos/level-index-update)](https://github.com/binocarlos/level-index-update) [![Contributors](https://img.shields.io/github/contributors/binocarlos/level-index-update?color=brightgreen)](https://github.com/binocarlos/level-index-update/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-index-update)](https://www.npmjs.com/package/level-index-update) [![npm downloads](https://img.shields.io/npm/dw/level-index-update)](https://www.npmjs.com/package/level-index-update) [![License](https://img.shields.io/npm/l/level-index-update?color=blue)](https://www.npmjs.com/package/level-index-update) [![Last commit](https://img.shields.io/github/last-commit/binocarlos/level-index-update)](https://github.com/binocarlos/level-index-update) [![Contributors](https://img.shields.io/github/contributors/binocarlos/level-index-update?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/kordon/range)](https://github.com/kordon/range) [![Contributors](https://img.shields.io/github/contributors/kordon/range?color=brightgreen)](https://github.com/kordon/range/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/range-index)](https://www.npmjs.com/package/range-index) [![npm downloads](https://img.shields.io/npm/dw/range-index)](https://www.npmjs.com/package/range-index) [![License](https://img.shields.io/npm/l/range-index?color=blue)](https://www.npmjs.com/package/range-index) [![Last commit](https://img.shields.io/github/last-commit/kordon/range)](https://github.com/kordon/range) [![Contributors](https://img.shields.io/github/contributors/kordon/range?color=blue)](https://github.com/kordon/range/graphs/contributors)
Range indexes for [`levelup`][levelup].
### [`level-path-index`][level-path-index]
-[![Last commit](https://img.shields.io/github/last-commit/binocarlos/level-path-index)](https://github.com/binocarlos/level-path-index) [![Contributors](https://img.shields.io/github/contributors/binocarlos/level-path-index?color=brightgreen)](https://github.com/binocarlos/level-path-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-path-index)](https://www.npmjs.com/package/level-path-index) [![npm downloads](https://img.shields.io/npm/dw/level-path-index)](https://www.npmjs.com/package/level-path-index) [![License](https://img.shields.io/npm/l/level-path-index?color=blue)](https://www.npmjs.com/package/level-path-index) [![Last commit](https://img.shields.io/github/last-commit/binocarlos/level-path-index)](https://github.com/binocarlos/level-path-index) [![Contributors](https://img.shields.io/github/contributors/binocarlos/level-path-index?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-sql)](https://github.com/hij1nx/level-sql) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-sql?color=brightgreen)](https://github.com/hij1nx/level-sql/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-sql)](https://www.npmjs.com/package/level-sql) [![npm downloads](https://img.shields.io/npm/dw/level-sql)](https://www.npmjs.com/package/level-sql) [![License](https://img.shields.io/npm/l/level-sql?color=blue)](https://www.npmjs.com/package/level-sql) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-sql)](https://github.com/hij1nx/level-sql) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-sql?color=blue)](https://github.com/hij1nx/level-sql/graphs/contributors)
SQL queries for [`levelup`][levelup].
### [`level-hash-index`][level-hash-index]
-[![Last commit](https://img.shields.io/github/last-commit/smallhelm/level-hash-index)](https://github.com/smallhelm/level-hash-index) [![Contributors](https://img.shields.io/github/contributors/smallhelm/level-hash-index?color=brightgreen)](https://github.com/smallhelm/level-hash-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-hash-index)](https://www.npmjs.com/package/level-hash-index) [![npm downloads](https://img.shields.io/npm/dw/level-hash-index)](https://www.npmjs.com/package/level-hash-index) [![License](https://img.shields.io/npm/l/level-hash-index?color=blue)](https://www.npmjs.com/package/level-hash-index) [![Last commit](https://img.shields.io/github/last-commit/smallhelm/level-hash-index)](https://github.com/smallhelm/level-hash-index) [![Contributors](https://img.shields.io/github/contributors/smallhelm/level-hash-index?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/hypermodules/level-idx)](https://github.com/hypermodules/level-idx) [![Contributors](https://img.shields.io/github/contributors/hypermodules/level-idx?color=brightgreen)](https://github.com/hypermodules/level-idx/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-idx)](https://www.npmjs.com/package/level-idx) [![npm downloads](https://img.shields.io/npm/dw/level-idx)](https://www.npmjs.com/package/level-idx) [![License](https://img.shields.io/npm/l/level-idx?color=blue)](https://www.npmjs.com/package/level-idx) [![Last commit](https://img.shields.io/github/last-commit/hypermodules/level-idx)](https://github.com/hypermodules/level-idx) [![Contributors](https://img.shields.io/github/contributors/hypermodules/level-idx?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-indexer)](https://github.com/mafintosh/level-indexer) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-indexer?color=brightgreen)](https://github.com/mafintosh/level-indexer/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-indexer)](https://www.npmjs.com/package/level-indexer) [![npm downloads](https://img.shields.io/npm/dw/level-indexer)](https://www.npmjs.com/package/level-indexer) [![License](https://img.shields.io/npm/l/level-indexer?color=blue)](https://www.npmjs.com/package/level-indexer) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-indexer)](https://github.com/mafintosh/level-indexer) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-indexer?color=blue)](https://github.com/mafintosh/level-indexer/graphs/contributors)
Generic indexer for [`levelup`][levelup]. Only stores document keys for space efficiency.
### [`level-librarian`][level-librarian]
-[![Last commit](https://img.shields.io/github/last-commit/microstar-db/level-librarian)](https://github.com/microstar-db/level-librarian) [![Contributors](https://img.shields.io/github/contributors/microstar-db/level-librarian?color=brightgreen)](https://github.com/microstar-db/level-librarian/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-librarian)](https://www.npmjs.com/package/level-librarian) [![npm downloads](https://img.shields.io/npm/dw/level-librarian)](https://www.npmjs.com/package/level-librarian) [![License](https://img.shields.io/npm/l/level-librarian?color=blue)](https://www.npmjs.com/package/level-librarian) [![Last commit](https://img.shields.io/github/last-commit/microstar-db/level-librarian)](https://github.com/microstar-db/level-librarian) [![Contributors](https://img.shields.io/github/contributors/microstar-db/level-librarian?color=blue)](https://github.com/microstar-db/level-librarian/graphs/contributors)
Lightweight indexing and querying with the LLCJ query language.
### [`level-match-index`][level-match-index]
-[![Last commit](https://img.shields.io/github/last-commit/mmckegg/level-match-index)](https://github.com/mmckegg/level-match-index) [![Contributors](https://img.shields.io/github/contributors/mmckegg/level-match-index?color=brightgreen)](https://github.com/mmckegg/level-match-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-match-index)](https://www.npmjs.com/package/level-match-index) [![npm downloads](https://img.shields.io/npm/dw/level-match-index)](https://www.npmjs.com/package/level-match-index) [![License](https://img.shields.io/npm/l/level-match-index?color=blue)](https://www.npmjs.com/package/level-match-index) [![Last commit](https://img.shields.io/github/last-commit/mmckegg/level-match-index)](https://github.com/mmckegg/level-match-index) [![Contributors](https://img.shields.io/github/contributors/mmckegg/level-match-index?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-assoc)](https://github.com/substack/level-assoc) [![Contributors](https://img.shields.io/github/contributors/substack/level-assoc?color=brightgreen)](https://github.com/substack/level-assoc/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-assoc)](https://www.npmjs.com/package/level-assoc) [![npm downloads](https://img.shields.io/npm/dw/level-assoc)](https://www.npmjs.com/package/level-assoc) [![License](https://img.shields.io/npm/l/level-assoc?color=blue)](https://www.npmjs.com/package/level-assoc) [![Last commit](https://img.shields.io/github/last-commit/substack/level-assoc)](https://github.com/substack/level-assoc) [![Contributors](https://img.shields.io/github/contributors/substack/level-assoc?color=blue)](https://github.com/substack/level-assoc/graphs/contributors)
Relational foreign key associations (`hasMany`, `belongsTo`) for [`levelup`][levelup].
### [`level-tree-index`][level-tree-index]
-[![Last commit](https://img.shields.io/github/last-commit/biobricks/level-tree-index)](https://github.com/biobricks/level-tree-index) [![Contributors](https://img.shields.io/github/contributors/biobricks/level-tree-index?color=brightgreen)](https://github.com/biobricks/level-tree-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-tree-index)](https://www.npmjs.com/package/level-tree-index) [![npm downloads](https://img.shields.io/npm/dw/level-tree-index)](https://www.npmjs.com/package/level-tree-index) [![License](https://img.shields.io/npm/l/level-tree-index?color=blue)](https://www.npmjs.com/package/level-tree-index) [![Last commit](https://img.shields.io/github/last-commit/biobricks/level-tree-index)](https://github.com/biobricks/level-tree-index) [![Contributors](https://img.shields.io/github/contributors/biobricks/level-tree-index?color=blue)](https://github.com/biobricks/level-tree-index/graphs/contributors)
Tree indexer for [`levelup`][levelup].
### [`changes-index`][changes-index]
-[![Last commit](https://img.shields.io/github/last-commit/substack/changes-index)](https://github.com/substack/changes-index) [![Contributors](https://img.shields.io/github/contributors/substack/changes-index?color=brightgreen)](https://github.com/substack/changes-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/changes-index)](https://www.npmjs.com/package/changes-index) [![npm downloads](https://img.shields.io/npm/dw/changes-index)](https://www.npmjs.com/package/changes-index) [![License](https://img.shields.io/npm/l/changes-index?color=blue)](https://www.npmjs.com/package/changes-index) [![Last commit](https://img.shields.io/github/last-commit/substack/changes-index)](https://github.com/substack/changes-index) [![Contributors](https://img.shields.io/github/contributors/substack/changes-index?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/changesdown)](https://github.com/mafintosh/changesdown) [![Contributors](https://img.shields.io/github/contributors/mafintosh/changesdown?color=brightgreen)](https://github.com/mafintosh/changesdown/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/changesdown)](https://www.npmjs.com/package/changesdown) [![npm downloads](https://img.shields.io/npm/dw/changesdown)](https://www.npmjs.com/package/changesdown) [![License](https://img.shields.io/npm/l/changesdown?color=blue)](https://www.npmjs.com/package/changesdown) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/changesdown)](https://github.com/mafintosh/changesdown) [![Contributors](https://img.shields.io/github/contributors/mafintosh/changesdown?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/eranbnn/level-ordered)](https://github.com/eranbnn/level-ordered) [![Contributors](https://img.shields.io/github/contributors/eranbnn/level-ordered?color=brightgreen)](https://github.com/eranbnn/level-ordered/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-ordered)](https://www.npmjs.com/package/level-ordered) [![npm downloads](https://img.shields.io/npm/dw/level-ordered)](https://www.npmjs.com/package/level-ordered) [![License](https://img.shields.io/npm/l/level-ordered?color=blue)](https://www.npmjs.com/package/level-ordered) [![Last commit](https://img.shields.io/github/last-commit/eranbnn/level-ordered)](https://github.com/eranbnn/level-ordered) [![Contributors](https://img.shields.io/github/contributors/eranbnn/level-ordered?color=blue)](https://github.com/eranbnn/level-ordered/graphs/contributors)
A wrapper for [`level`][level] that keeps inserted items ordered.
@@ -594,1369 +334,1714 @@ A wrapper for [`level`][level] that keeps inserted items ordered.
### [`dat`][dat]
-[![Last commit](https://img.shields.io/github/last-commit/maxogden/dat)](https://github.com/maxogden/dat) [![Contributors](https://img.shields.io/github/contributors/maxogden/dat?color=brightgreen)](https://github.com/maxogden/dat/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/dat)](https://www.npmjs.com/package/dat) [![npm downloads](https://img.shields.io/npm/dw/dat)](https://www.npmjs.com/package/dat) [![License](https://img.shields.io/npm/l/dat?color=blue)](https://www.npmjs.com/package/dat) [![Last commit](https://img.shields.io/github/last-commit/maxogden/dat)](https://github.com/maxogden/dat) [![Contributors](https://img.shields.io/github/contributors/maxogden/dat?color=blue)](https://github.com/maxogden/dat/graphs/contributors)
Lets you build streaming data pipelines that can be shared and replicated by others.
### [`pouchdb`][pouchdb]
-PouchDB allows you to store and query data offline and then sync with CouchDB when online. For Node, browser and mobile.
-
-### [`couchup`][couchup]
-
-[![Last commit](https://img.shields.io/github/last-commit/mikeal/couchup)](https://github.com/mikeal/couchup) [![Contributors](https://img.shields.io/github/contributors/mikeal/couchup?color=brightgreen)](https://github.com/mikeal/couchup/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/pouchdb)](https://www.npmjs.com/package/pouchdb) [![npm downloads](https://img.shields.io/npm/dw/pouchdb)](https://www.npmjs.com/package/pouchdb) [![License](https://img.shields.io/npm/l/pouchdb?color=blue)](https://www.npmjs.com/package/pouchdb)
-A CouchDB implementation on top of [`levelup`][levelup].
-
-### [`firedup`][firedup]
-
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/firedup)](https://github.com/eugeneware/firedup) [![Contributors](https://img.shields.io/github/contributors/eugeneware/firedup?color=brightgreen)](https://github.com/eugeneware/firedup/graphs/contributors)
-
-A node.js implementation of firebase based on [`levelup`][levelup].
-
-### [`len`][len]
-
-[![Last commit](https://img.shields.io/github/last-commit/binocarlos/len)](https://github.com/binocarlos/len) [![Contributors](https://img.shields.io/github/contributors/binocarlos/len?color=brightgreen)](https://github.com/binocarlos/len/graphs/contributors)
-
-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`][lem]
-
-[![Last commit](https://img.shields.io/github/last-commit/binocarlos/lem)](https://github.com/binocarlos/lem) [![Contributors](https://img.shields.io/github/contributors/binocarlos/lem?color=brightgreen)](https://github.com/binocarlos/lem/graphs/contributors)
-
-Lem is a telemetry storage database using LevelDB. Keys are indexed by timestamp and you can read values in-between 2 points in time.
+PouchDB allows you to store and query data offline and then sync with CouchDB when online. For Node, browser and mobile.
### [`levelgraph`][levelgraph]
-[![Last commit](https://img.shields.io/github/last-commit/mcollina/node-levelgraph)](https://github.com/mcollina/node-levelgraph) [![Contributors](https://img.shields.io/github/contributors/mcollina/node-levelgraph?color=brightgreen)](https://github.com/mcollina/node-levelgraph/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/levelgraph)](https://www.npmjs.com/package/levelgraph) [![npm downloads](https://img.shields.io/npm/dw/levelgraph)](https://www.npmjs.com/package/levelgraph) [![License](https://img.shields.io/npm/l/levelgraph?color=blue)](https://www.npmjs.com/package/levelgraph) [![Last commit](https://img.shields.io/github/last-commit/mcollina/node-levelgraph)](https://github.com/mcollina/node-levelgraph) [![Contributors](https://img.shields.io/github/contributors/mcollina/node-levelgraph?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/Ivshti/linvodb3)](https://github.com/Ivshti/linvodb3) [![Contributors](https://img.shields.io/github/contributors/Ivshti/linvodb3?color=brightgreen)](https://github.com/Ivshti/linvodb3/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/linvodb3)](https://www.npmjs.com/package/linvodb3) [![npm downloads](https://img.shields.io/npm/dw/linvodb3)](https://www.npmjs.com/package/linvodb3) [![License](https://img.shields.io/npm/l/linvodb3?color=blue)](https://www.npmjs.com/package/linvodb3) [![Last commit](https://img.shields.io/github/last-commit/Ivshti/linvodb3)](https://github.com/Ivshti/linvodb3) [![Contributors](https://img.shields.io/github/contributors/Ivshti/linvodb3?color=blue)](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]
-[![Last commit](https://img.shields.io/github/last-commit/pubkey/rxdb)](https://github.com/pubkey/rxdb) [![Contributors](https://img.shields.io/github/contributors/pubkey/rxdb?color=brightgreen)](https://github.com/pubkey/rxdb/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/rxdb)](https://www.npmjs.com/package/rxdb) [![npm downloads](https://img.shields.io/npm/dw/rxdb)](https://www.npmjs.com/package/rxdb) [![License](https://img.shields.io/npm/l/rxdb?color=blue)](https://www.npmjs.com/package/rxdb) [![Last commit](https://img.shields.io/github/last-commit/pubkey/rxdb)](https://github.com/pubkey/rxdb) [![Contributors](https://img.shields.io/github/contributors/pubkey/rxdb?color=blue)](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.
-### [`pushdb`][pushdb]
-
-[![Last commit](https://img.shields.io/github/last-commit/mikeal/pushdb)](https://github.com/mikeal/pushdb) [![Contributors](https://img.shields.io/github/contributors/mikeal/pushdb?color=brightgreen)](https://github.com/mikeal/pushdb/graphs/contributors)
-
-A programmable database with document storage and unique indexing capabilities.
-
### [`search-index`][search-index]
-[![Last commit](https://img.shields.io/github/last-commit/fergiemcdowall/search-index)](https://github.com/fergiemcdowall/search-index) [![Contributors](https://img.shields.io/github/contributors/fergiemcdowall/search-index?color=brightgreen)](https://github.com/fergiemcdowall/search-index/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/search-index)](https://www.npmjs.com/package/search-index) [![npm downloads](https://img.shields.io/npm/dw/search-index)](https://www.npmjs.com/package/search-index) [![License](https://img.shields.io/npm/l/search-index?color=blue)](https://www.npmjs.com/package/search-index) [![Last commit](https://img.shields.io/github/last-commit/fergiemcdowall/search-index)](https://github.com/fergiemcdowall/search-index) [![Contributors](https://img.shields.io/github/contributors/fergiemcdowall/search-index?color=blue)](https://github.com/fergiemcdowall/search-index/graphs/contributors)
A persistent full text search engine for browser and Node.js.
-### [`tacodb`][tacodb]
+## Data Structures
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/tacodb)](https://github.com/dominictarr/tacodb) [![Contributors](https://img.shields.io/github/contributors/dominictarr/tacodb?color=brightgreen)](https://github.com/dominictarr/tacodb/graphs/contributors)
+**Modules that utilize a specific key/value scheme to provide a higher-level data structure.**
-A responsive, Node.js-style database ideal for realtime data. Highly modular and adaptable, allowing extension with the [Level][level-org] ecosystem.
+### [`merkle-dag`][merkle-dag]
-### [`timestreamdb`][timestreamdb]
+[![npm package version](https://img.shields.io/npm/v/merkle-dag)](https://www.npmjs.com/package/merkle-dag) [![npm downloads](https://img.shields.io/npm/dw/merkle-dag)](https://www.npmjs.com/package/merkle-dag) [![License](https://img.shields.io/npm/l/merkle-dag?color=blue)](https://www.npmjs.com/package/merkle-dag) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/merkle-dag)](https://github.com/mafintosh/merkle-dag) [![Contributors](https://img.shields.io/github/contributors/mafintosh/merkle-dag?color=blue)](https://github.com/mafintosh/merkle-dag/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/brycebaril/timestreamdb)](https://github.com/brycebaril/timestreamdb) [![Contributors](https://img.shields.io/github/contributors/brycebaril/timestreamdb?color=brightgreen)](https://github.com/brycebaril/timestreamdb/graphs/contributors)
+Merkle DAG on top of LevelDB
-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.
+### [`merkle-patricia-tree`][merkle-patricia-tree]
-### [`@nano-sql/core`][@nano-sql/core]
+[![npm package version](https://img.shields.io/npm/v/merkle-patricia-tree)](https://www.npmjs.com/package/merkle-patricia-tree) [![npm downloads](https://img.shields.io/npm/dw/merkle-patricia-tree)](https://www.npmjs.com/package/merkle-patricia-tree) [![License](https://img.shields.io/npm/l/merkle-patricia-tree?color=blue)](https://www.npmjs.com/package/merkle-patricia-tree) [![Last commit](https://img.shields.io/github/last-commit/ethereumjs/merkle-patricia-tree)](https://github.com/ethereumjs/merkle-patricia-tree) [![Contributors](https://img.shields.io/github/contributors/ethereumjs/merkle-patricia-tree?color=blue)](https://github.com/ethereumjs/merkle-patricia-tree/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/ClickSimply/Nano-SQL)](https://github.com/ClickSimply/Nano-SQL) [![Contributors](https://img.shields.io/github/contributors/ClickSimply/Nano-SQL?color=brightgreen)](https://github.com/ClickSimply/Nano-SQL/graphs/contributors)
+Implementation of the modified merkle patricia tree as specified in [Ethereum's yellow paper](http://gavwood.com/Paper.pdf).
-A small (10Kb) RDBMS abstraction on top of [`levelup`][levelup] that also runs in the browser with undo/redo support, immutable objects and IndexedDB persistence.
+### [`level-array`][level-array]
-### [`vertical`][vertical]
+[![npm package version](https://img.shields.io/npm/v/level-array)](https://www.npmjs.com/package/level-array) [![npm downloads](https://img.shields.io/npm/dw/level-array)](https://www.npmjs.com/package/level-array) [![License](https://img.shields.io/npm/l/level-array?color=blue)](https://www.npmjs.com/package/level-array) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-array)](https://github.com/juliangruber/level-array) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-array?color=blue)](https://github.com/juliangruber/level-array/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/zy445566/vertical)](https://github.com/zy445566/vertical) [![Contributors](https://img.shields.io/github/contributors/zy445566/vertical?color=brightgreen)](https://github.com/zy445566/vertical/graphs/contributors)
+The array datatype inside [`levelup`][levelup].
-LevelDB distributed, Server and Client!
+### [`level-set`][level-set]
-### [`flash-store`][flash-store]
+[![npm package version](https://img.shields.io/npm/v/level-set)](https://www.npmjs.com/package/level-set) [![npm downloads](https://img.shields.io/npm/dw/level-set)](https://www.npmjs.com/package/level-set) [![License](https://img.shields.io/npm/l/level-set?color=blue)](https://www.npmjs.com/package/level-set) [![Last commit](https://img.shields.io/github/last-commit/maiah/level-set)](https://github.com/maiah/level-set) [![Contributors](https://img.shields.io/github/contributors/maiah/level-set?color=blue)](https://github.com/maiah/level-set/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/zixia/flash-store)](https://github.com/zixia/flash-store) [![Contributors](https://img.shields.io/github/contributors/zixia/flash-store?color=brightgreen)](https://github.com/zixia/flash-store/graphs/contributors)
+Add a `set` method to [`levelup`][levelup] for saving objects in a tree-like structure.
-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-push`][level-push]
-### [`level-fact-base`][level-fact-base]
+[![npm package version](https://img.shields.io/npm/v/level-push)](https://www.npmjs.com/package/level-push) [![npm downloads](https://img.shields.io/npm/dw/level-push)](https://www.npmjs.com/package/level-push) [![License](https://img.shields.io/npm/l/level-push?color=blue)](https://www.npmjs.com/package/level-push) [![Last commit](https://img.shields.io/github/last-commit/maiah/level-push)](https://github.com/maiah/level-push) [![Contributors](https://img.shields.io/github/contributors/maiah/level-push?color=blue)](https://github.com/maiah/level-push/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/smallhelm/level-fact-base)](https://github.com/smallhelm/level-fact-base) [![Contributors](https://img.shields.io/github/contributors/smallhelm/level-fact-base?color=brightgreen)](https://github.com/smallhelm/level-fact-base/graphs/contributors)
+Add a `push` method to [`levelup`][levelup] for saving objects using [`level-set`][level-set] with auto-generated UUID.
-Store immutable facts and query them with datalog.
+### [`level-version`][level-version]
-### [`dulcimer`][dulcimer]
+[![npm package version](https://img.shields.io/npm/v/level-version)](https://www.npmjs.com/package/level-version) [![npm downloads](https://img.shields.io/npm/dw/level-version)](https://www.npmjs.com/package/level-version) [![License](https://img.shields.io/npm/l/level-version?color=blue)](https://www.npmjs.com/package/level-version) [![Last commit](https://img.shields.io/github/last-commit/brycebaril/level-version)](https://github.com/brycebaril/level-version) [![Contributors](https://img.shields.io/github/contributors/brycebaril/level-version?color=blue)](https://github.com/brycebaril/level-version/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/fritzy/dulcimer)](https://github.com/fritzy/dulcimer) [![Contributors](https://img.shields.io/github/contributors/fritzy/dulcimer?color=brightgreen)](https://github.com/fritzy/dulcimer/graphs/contributors)
+Store and retrieve versioned data in [`levelup`][levelup].
-Define JSON models and manage indexes, children, foreign keys and much more.
+### [`level-queue-type`][level-queue-type]
-### [`levi`][levi]
+[![npm package version](https://img.shields.io/npm/v/level-queue-type)](https://www.npmjs.com/package/level-queue-type) [![npm downloads](https://img.shields.io/npm/dw/level-queue-type)](https://www.npmjs.com/package/level-queue-type) [![License](https://img.shields.io/npm/l/level-queue-type?color=blue)](https://www.npmjs.com/package/level-queue-type) [![Last commit](https://img.shields.io/github/last-commit/mcollina/level-queue-type)](https://github.com/mcollina/level-queue-type) [![Contributors](https://img.shields.io/github/contributors/mcollina/level-queue-type?color=blue)](https://github.com/mcollina/level-queue-type/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/cshum/levi)](https://github.com/cshum/levi) [![Contributors](https://img.shields.io/github/contributors/cshum/levi?color=brightgreen)](https://github.com/cshum/levi/graphs/contributors)
+The queue datatype inside [`levelup`][levelup].
-Stream based full-text search for Node.js and browser using [`levelup`][levelup].
+### [`level-q`][level-q]
-### [`level-mongo`][level-mongo]
+[![npm package version](https://img.shields.io/npm/v/level-q)](https://www.npmjs.com/package/level-q) [![npm downloads](https://img.shields.io/npm/dw/level-q)](https://www.npmjs.com/package/level-q) [![License](https://img.shields.io/npm/l/level-q?color=blue)](https://www.npmjs.com/package/level-q) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-q)](https://github.com/eugeneware/level-q) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-q?color=blue)](https://github.com/eugeneware/level-q/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/simon-p-r/level-mongo)](https://github.com/simon-p-r/level-mongo) [![Contributors](https://img.shields.io/github/contributors/simon-p-r/level-mongo?color=brightgreen)](https://github.com/simon-p-r/level-mongo/graphs/contributors)
+Priority queuing for [`levelup`][levelup].
-MongoDB-like database backed by LevelDB.
+### [`qool`][qool]
-### [`level-orm`][level-orm]
+[![npm package version](https://img.shields.io/npm/v/qool)](https://www.npmjs.com/package/qool) [![npm downloads](https://img.shields.io/npm/dw/qool)](https://www.npmjs.com/package/qool) [![License](https://img.shields.io/npm/l/qool?color=blue)](https://www.npmjs.com/package/qool) [![Last commit](https://img.shields.io/github/last-commit/kessler/qool)](https://github.com/kessler/qool) [![Contributors](https://img.shields.io/github/contributors/kessler/qool?color=blue)](https://github.com/kessler/qool/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-orm)](https://github.com/eugeneware/level-orm) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-orm?color=brightgreen)](https://github.com/eugeneware/level-orm/graphs/contributors)
+A queue backed by [`levelup`][levelup], durable and FIFO.
-Simple ORM built on [`levelup`][levelup].
+### [`level-trie`][level-trie]
-### [`level-lively`][level-lively]
+[![npm package version](https://img.shields.io/npm/v/level-trie)](https://www.npmjs.com/package/level-trie) [![npm downloads](https://img.shields.io/npm/dw/level-trie)](https://www.npmjs.com/package/level-trie) [![License](https://img.shields.io/npm/l/level-trie?color=blue)](https://www.npmjs.com/package/level-trie) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-trie)](https://github.com/juliangruber/level-trie) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-trie?color=blue)](https://github.com/juliangruber/level-trie/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-lively)](https://github.com/eugeneware/level-lively) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-lively?color=brightgreen)](https://github.com/eugeneware/level-lively/graphs/contributors)
+The TRIE data structure and search algorithm, on top of [`levelup`][levelup].
-[`levelup`][levelup] implementation of [LivelyDb](https://github.com/eugeneware/livelydb) for doing real-time data binding of a database with local javascript objects.
+### [`level-geospatial`][level-geospatial]
-### [`kwdb`][kwdb]
+[![npm package version](https://img.shields.io/npm/v/level-geospatial)](https://www.npmjs.com/package/level-geospatial) [![npm downloads](https://img.shields.io/npm/dw/level-geospatial)](https://www.npmjs.com/package/level-geospatial) [![License](https://img.shields.io/npm/l/level-geospatial?color=blue)](https://www.npmjs.com/package/level-geospatial) [![Last commit](https://img.shields.io/github/last-commit/richorama/level-geospatial)](https://github.com/richorama/level-geospatial) [![Contributors](https://img.shields.io/github/contributors/richorama/level-geospatial?color=blue)](https://github.com/richorama/level-geospatial/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/KsRyY/kwdb)](https://github.com/KsRyY/kwdb) [![Contributors](https://img.shields.io/github/contributors/KsRyY/kwdb?color=brightgreen)](https://github.com/KsRyY/kwdb/graphs/contributors)
+Store key values pairs with lat/lon coordinates, and query using a radius.
-REST wrapper for [`levelup`][levelup].
+### [`level-pathwise`][level-pathwise]
-### [`level-restful`][level-restful]
+[![npm package version](https://img.shields.io/npm/v/level-pathwise)](https://www.npmjs.com/package/level-pathwise) [![npm downloads](https://img.shields.io/npm/dw/level-pathwise)](https://www.npmjs.com/package/level-pathwise) [![License](https://img.shields.io/npm/l/level-pathwise?color=blue)](https://www.npmjs.com/package/level-pathwise) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-pathwise)](https://github.com/juliangruber/level-pathwise) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-pathwise?color=blue)](https://github.com/juliangruber/level-pathwise/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/karissa/level-restful)](https://github.com/karissa/level-restful) [![Contributors](https://img.shields.io/github/contributors/karissa/level-restful?color=brightgreen)](https://github.com/karissa/level-restful/graphs/contributors)
+Turn [`levelup`][levelup] into one huge object of arbitrary size! Efficiently and atomically update and read parts of it.
-REST wrapper for [`levelup`][levelup], as an extension to [`level-orm`][level-orm].
+### [`level-places`][level-places]
-### [`level-rest`][level-rest]
+[![npm package version](https://img.shields.io/npm/v/level-places)](https://www.npmjs.com/package/level-places) [![npm downloads](https://img.shields.io/npm/dw/level-places)](https://www.npmjs.com/package/level-places) [![License](https://img.shields.io/npm/l/level-places?color=blue)](https://www.npmjs.com/package/level-places) [![Last commit](https://img.shields.io/github/last-commit/Wayla/level-places)](https://github.com/Wayla/level-places) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-places?color=blue)](https://github.com/Wayla/level-places/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/shama/level-rest)](https://github.com/shama/level-rest) [![Contributors](https://img.shields.io/github/contributors/shama/level-rest?color=brightgreen)](https://github.com/shama/level-rest/graphs/contributors)
+Store and retrieve places near a lat/long pair.
-REST wrapper for [`levelup`][levelup]. NB. Not compatible with latest [`levelup`][levelup].
+### [`level-nearby-stream`][level-nearby-stream]
-## Shared Access
+[![npm package version](https://img.shields.io/npm/v/level-nearby-stream)](https://www.npmjs.com/package/level-nearby-stream) [![npm downloads](https://img.shields.io/npm/dw/level-nearby-stream)](https://www.npmjs.com/package/level-nearby-stream) [![License](https://img.shields.io/npm/l/level-nearby-stream?color=blue)](https://www.npmjs.com/package/level-nearby-stream) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-nearby-stream)](https://github.com/juliangruber/level-nearby-stream) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-nearby-stream?color=blue)](https://github.com/juliangruber/level-nearby-stream/graphs/contributors)
-### [`multileveldown`][multileveldown]
+Stream in nearby places using the browser's geolocation and [`level-places`][level-places].
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/multileveldown)](https://github.com/mafintosh/multileveldown) [![Contributors](https://img.shields.io/github/contributors/mafintosh/multileveldown?color=brightgreen)](https://github.com/mafintosh/multileveldown/graphs/contributors)
+### [`level-tree`][level-tree]
-Share a [`levelup`][levelup] instance across multiple processes or over the network. An alternative to [`multilevel`][multilevel], implemented as [`abstract-leveldown`][abstract-leveldown] stores with seamless retry support.
+[![npm package version](https://img.shields.io/npm/v/level-tree)](https://www.npmjs.com/package/level-tree) [![npm downloads](https://img.shields.io/npm/dw/level-tree)](https://www.npmjs.com/package/level-tree) [![License](https://img.shields.io/npm/l/level-tree?color=blue)](https://www.npmjs.com/package/level-tree) [![Last commit](https://img.shields.io/github/last-commit/calvinmetcalf/level-tree)](https://github.com/calvinmetcalf/level-tree) [![Contributors](https://img.shields.io/github/contributors/calvinmetcalf/level-tree?color=blue)](https://github.com/calvinmetcalf/level-tree/graphs/contributors)
-### [`level-party`][level-party]
+Geospatial indexing for GeoJSON in [`levelup`][levelup]
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-party)](https://github.com/substack/level-party) [![Contributors](https://img.shields.io/github/contributors/substack/level-party?color=brightgreen)](https://github.com/substack/level-party/graphs/contributors)
+### [`level-list`][level-list]
-Open a LevelDB ([`leveldown`][leveldown]) handle multiple times, transparently upgrading to [`multileveldown`][multileveldown] when more than 1 process try to use the same LevelDB data directory at once and re-electing a new master when the primary unix socket (or named pipe) goes down.
+[![npm package version](https://img.shields.io/npm/v/level-list)](https://www.npmjs.com/package/level-list) [![npm downloads](https://img.shields.io/npm/dw/level-list)](https://www.npmjs.com/package/level-list) [![License](https://img.shields.io/npm/l/level-list?color=blue)](https://www.npmjs.com/package/level-list) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-list)](https://github.com/juliangruber/level-list) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-list?color=blue)](https://github.com/juliangruber/level-list/graphs/contributors)
-### [`cluster-levelup`][cluster-levelup]
+Map lists of data stored in [`levelup`][levelup] to DOM elements.
-[![Last commit](https://img.shields.io/github/last-commit/chiguireitor/cluster-levelup)](https://github.com/chiguireitor/cluster-levelup) [![Contributors](https://img.shields.io/github/contributors/chiguireitor/cluster-levelup?color=brightgreen)](https://github.com/chiguireitor/cluster-levelup/graphs/contributors)
+### [`level-reactive`][level-reactive]
-Wrap a [`levelup`][levelup] instance for [`cluster`](https://nodejs.org/api/cluster.html) usage among multiple processes.
+[![npm package version](https://img.shields.io/npm/v/level-reactive)](https://www.npmjs.com/package/level-reactive) [![npm downloads](https://img.shields.io/npm/dw/level-reactive)](https://www.npmjs.com/package/level-reactive) [![License](https://img.shields.io/npm/l/level-reactive?color=blue)](https://www.npmjs.com/package/level-reactive) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-reactive)](https://github.com/juliangruber/level-reactive) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-reactive?color=blue)](https://github.com/juliangruber/level-reactive/graphs/contributors)
-### [`multilevel`][multilevel]
+Reactive templating for data stored in [`levelup`][levelup].
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/multilevel)](https://github.com/juliangruber/multilevel) [![Contributors](https://img.shields.io/github/contributors/juliangruber/multilevel?color=brightgreen)](https://github.com/juliangruber/multilevel/graphs/contributors)
+### [`level-paginate`][level-paginate]
-Share a [`levelup`][levelup] instance over the network.
+[![npm package version](https://img.shields.io/npm/v/level-paginate)](https://www.npmjs.com/package/level-paginate) [![npm downloads](https://img.shields.io/npm/dw/level-paginate)](https://www.npmjs.com/package/level-paginate) [![License](https://img.shields.io/npm/l/level-paginate?color=blue)](https://www.npmjs.com/package/level-paginate) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-paginate)](https://github.com/juliangruber/level-paginate) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-paginate?color=blue)](https://github.com/juliangruber/level-paginate/graphs/contributors)
-### [`multilevel-http`][multilevel-http]
+Streaming pagination for [`levelup`][levelup].
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/multilevel-http)](https://github.com/juliangruber/multilevel-http) [![Contributors](https://img.shields.io/github/contributors/juliangruber/multilevel-http?color=brightgreen)](https://github.com/juliangruber/multilevel-http/graphs/contributors)
+### [`level-average`][level-average]
-Expose a [`levelup`][levelup] instance via HTTP.
+[![npm package version](https://img.shields.io/npm/v/level-average)](https://www.npmjs.com/package/level-average) [![npm downloads](https://img.shields.io/npm/dw/level-average)](https://www.npmjs.com/package/level-average) [![License](https://img.shields.io/npm/l/level-average?color=blue)](https://www.npmjs.com/package/level-average) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-average)](https://github.com/juliangruber/level-average) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-average?color=blue)](https://github.com/juliangruber/level-average/graphs/contributors)
-### [`level-range-emitter`][level-range-emitter]
+Calculate rolling averages in [`levelup`][levelup].
-[![Last commit](https://img.shields.io/github/last-commit/jameskyburz/level-range-emitter)](https://github.com/jameskyburz/level-range-emitter) [![Contributors](https://img.shields.io/github/contributors/jameskyburz/level-range-emitter?color=brightgreen)](https://github.com/jameskyburz/level-range-emitter/graphs/contributors)
+### [`level-sum`][level-sum]
-Client and server using [`multileveldown`][multileveldown], [`range-emitter`][range-emitter] and [`ltgt`][ltgt].
+[![npm package version](https://img.shields.io/npm/v/level-sum)](https://www.npmjs.com/package/level-sum) [![npm downloads](https://img.shields.io/npm/dw/level-sum)](https://www.npmjs.com/package/level-sum) [![License](https://img.shields.io/npm/l/level-sum?color=blue)](https://www.npmjs.com/package/level-sum) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sum)](https://github.com/juliangruber/level-sum) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sum?color=blue)](https://github.com/juliangruber/level-sum/graphs/contributors)
-### [`level-manifest`][level-manifest]
+Calculate sums in [`levelup`][levelup] and get live updates.
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-manifest)](https://github.com/dominictarr/level-manifest) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-manifest?color=brightgreen)](https://github.com/dominictarr/level-manifest/graphs/contributors)
+### [`level-historical-json`][level-historical-json]
-Describe the functions that [`multilevel`][multilevel] should provide access to on the client.
+[![npm package version](https://img.shields.io/npm/v/level-historical-json)](https://www.npmjs.com/package/level-historical-json) [![npm downloads](https://img.shields.io/npm/dw/level-historical-json)](https://www.npmjs.com/package/level-historical-json) [![License](https://img.shields.io/npm/l/level-historical-json?color=blue)](https://www.npmjs.com/package/level-historical-json) [![Last commit](https://img.shields.io/github/last-commit/ellell/level-historical-json)](https://github.com/ellell/level-historical-json) [![Contributors](https://img.shields.io/github/contributors/ellell/level-historical-json?color=blue)](https://github.com/ellell/level-historical-json/graphs/contributors)
-### [`level-cluster-get`][level-cluster-get]
+Keep a history of all the changes of a JSON document.
-[![Last commit](https://img.shields.io/github/last-commit/kesla/level-cluster-get)](https://github.com/kesla/level-cluster-get) [![Contributors](https://img.shields.io/github/contributors/kesla/level-cluster-get?color=brightgreen)](https://github.com/kesla/level-cluster-get/graphs/contributors)
+### [`level-immutable`][level-immutable]
-Given a key, get all values from a cluster of [`multilevel`][multilevel] servers.
+[![npm package version](https://img.shields.io/npm/v/level-immutable)](https://www.npmjs.com/package/level-immutable) [![npm downloads](https://img.shields.io/npm/dw/level-immutable)](https://www.npmjs.com/package/level-immutable) [![License](https://img.shields.io/npm/l/level-immutable?color=blue)](https://www.npmjs.com/package/level-immutable) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-immutable)](https://github.com/eugeneware/level-immutable) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-immutable?color=blue)](https://github.com/eugeneware/level-immutable/graphs/contributors)
-### [`level-connect`][level-connect]
+[`levelup`][levelup] immutable history and database snapshotting based on ideas in `datomic`.
-[![Last commit](https://img.shields.io/github/last-commit/mattstyles/level-connect)](https://github.com/mattstyles/level-connect) [![Contributors](https://img.shields.io/github/contributors/mattstyles/level-connect?color=brightgreen)](https://github.com/mattstyles/level-connect/graphs/contributors)
+### [`level-model`][level-model]
-Connect to a [`level-party`][level-party] and [`level-sublevel`][level-sublevel] enabled LevelDB over HTTP.
+[![npm package version](https://img.shields.io/npm/v/level-model)](https://www.npmjs.com/package/level-model) [![npm downloads](https://img.shields.io/npm/dw/level-model)](https://www.npmjs.com/package/level-model) [![License](https://img.shields.io/npm/l/level-model?color=blue)](https://www.npmjs.com/package/level-model) [![Last commit](https://img.shields.io/github/last-commit/sethvincent/level-model)](https://github.com/sethvincent/level-model) [![Contributors](https://img.shields.io/github/contributors/sethvincent/level-model?color=blue)](https://github.com/sethvincent/level-model/graphs/contributors)
-### [`level-sandbox`][level-sandbox]
+A higher-level module for creating content models using [`levelup`][levelup] and JSON Schema validation.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sandbox)](https://github.com/juliangruber/level-sandbox) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sandbox?color=brightgreen)](https://github.com/juliangruber/level-sandbox/graphs/contributors)
+### [`level-stream`][level-stream]
-A sandbox for hosting [`multilevel`][multilevel] enabled databases.
+[![npm package version](https://img.shields.io/npm/v/level-stream)](https://www.npmjs.com/package/level-stream) [![npm downloads](https://img.shields.io/npm/dw/level-stream)](https://www.npmjs.com/package/level-stream) [![License](https://img.shields.io/npm/l/level-stream?color=blue)](https://www.npmjs.com/package/level-stream) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-stream)](https://github.com/juliangruber/level-stream) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-stream?color=blue)](https://github.com/juliangruber/level-stream/graphs/contributors)
-### [`level2riak`][level2riak]
+Persist streams in [`levelup`][levelup].
-[![Last commit](https://img.shields.io/github/last-commit/fritzy/level2git)](https://github.com/fritzy/level2git) [![Contributors](https://img.shields.io/github/contributors/fritzy/level2git?color=brightgreen)](https://github.com/fritzy/level2git/graphs/contributors)
+### [`level-stay`][level-stay]
-A network service that allows you to connect to a Riak database over HTTP.
+[![npm package version](https://img.shields.io/npm/v/level-stay)](https://www.npmjs.com/package/level-stay) [![npm downloads](https://img.shields.io/npm/dw/level-stay)](https://www.npmjs.com/package/level-stay) [![License](https://img.shields.io/npm/l/level-stay?color=blue)](https://www.npmjs.com/package/level-stay) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-stay)](https://github.com/juliangruber/level-stay) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-stay?color=blue)](https://github.com/juliangruber/level-stay/graphs/contributors)
-### [`leveldb-mount`][leveldb-mount]
+An alternative approach to storing scuttlebutts in [`levelup`][levelup].
-[![Last commit](https://img.shields.io/github/last-commit/jameskyburz/leveldb-mount)](https://github.com/jameskyburz/leveldb-mount) [![Contributors](https://img.shields.io/github/contributors/jameskyburz/leveldb-mount?color=brightgreen)](https://github.com/jameskyburz/leveldb-mount/graphs/contributors)
+### [`skeyma`][skeyma]
-LevelDB server and client with optional client-side REPL. Built with [`subleveldown`][subleveldown] and [`multileveldown`][multileveldown].
+[![npm package version](https://img.shields.io/npm/v/skeyma)](https://www.npmjs.com/package/skeyma) [![npm downloads](https://img.shields.io/npm/dw/skeyma)](https://www.npmjs.com/package/skeyma) [![License](https://img.shields.io/npm/l/skeyma?color=blue)](https://www.npmjs.com/package/skeyma) [![Last commit](https://img.shields.io/github/last-commit/jed/skeyma)](https://github.com/jed/skeyma) [![Contributors](https://img.shields.io/github/contributors/jed/skeyma?color=blue)](https://github.com/jed/skeyma/graphs/contributors)
-### [`level-pubsub`][level-pubsub]
+Turns a template string (like `${forumId}/${postId}`) into parse/serialize streams that transform objects like `{forumId, postId, text}` into key-value pairs and back.
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-pubsub)](https://github.com/hij1nx/level-pubsub) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-pubsub?color=brightgreen)](https://github.com/hij1nx/level-pubsub/graphs/contributors)
+### [`level-autotable`][level-autotable]
-PubSub with server and client on top of [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/level-autotable)](https://www.npmjs.com/package/level-autotable) [![npm downloads](https://img.shields.io/npm/dw/level-autotable)](https://www.npmjs.com/package/level-autotable) [![License](https://img.shields.io/npm/l/level-autotable?color=blue)](https://www.npmjs.com/package/level-autotable) [![Last commit](https://img.shields.io/github/last-commit/santoshrajan/levelup-autotable)](https://github.com/santoshrajan/levelup-autotable) [![Contributors](https://img.shields.io/github/contributors/santoshrajan/levelup-autotable?color=blue)](https://github.com/santoshrajan/levelup-autotable/graphs/contributors)
-### [`level-query`][level-query]
+Auto incrementing keys with "fields" and "records".
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-query)](https://github.com/substack/level-query) [![Contributors](https://img.shields.io/github/contributors/substack/level-query?color=brightgreen)](https://github.com/substack/level-query/graphs/contributors)
+### [`level-forks`][level-forks]
-Expose a [`level-sublevel`][level-sublevel] database over HTTP, searchable with query strings.
+[![npm package version](https://img.shields.io/npm/v/level-forks)](https://www.npmjs.com/package/level-forks) [![npm downloads](https://img.shields.io/npm/dw/level-forks)](https://www.npmjs.com/package/level-forks) [![License](https://img.shields.io/npm/l/level-forks?color=blue)](https://www.npmjs.com/package/level-forks) [![Last commit](https://img.shields.io/github/last-commit/substack/level-forks)](https://github.com/substack/level-forks) [![Contributors](https://img.shields.io/github/contributors/substack/level-forks?color=blue)](https://github.com/substack/level-forks/graphs/contributors)
-### [`level-over-http`][level-over-http]
+Forking graph of cascading namespaces.
-[![Last commit](https://img.shields.io/github/last-commit/lakowske/level-over-http)](https://github.com/lakowske/level-over-http) [![Contributors](https://img.shields.io/github/contributors/lakowske/level-over-http?color=brightgreen)](https://github.com/lakowske/level-over-http/graphs/contributors)
+### [`level-geo`][level-geo]
-Another solution to expose [`levelup`][levelup] over HTTP.
+[![npm package version](https://img.shields.io/npm/v/level-geo)](https://www.npmjs.com/package/level-geo) [![npm downloads](https://img.shields.io/npm/dw/level-geo)](https://www.npmjs.com/package/level-geo) [![License](https://img.shields.io/npm/l/level-geo?color=blue)](https://www.npmjs.com/package/level-geo) [![Last commit](https://img.shields.io/github/last-commit/julianduque/level-geo)](https://github.com/julianduque/level-geo) [![Contributors](https://img.shields.io/github/contributors/julianduque/level-geo?color=blue)](https://github.com/julianduque/level-geo/graphs/contributors)
-### [`level-rpc`][level-rpc]
+A geospatial index for [`levelup`][levelup].
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-rpc)](https://github.com/juliangruber/level-rpc) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-rpc?color=brightgreen)](https://github.com/juliangruber/level-rpc/graphs/contributors)
+### [`level-geography`][level-geography]
-Fast RPC mechanism for [`levelup`][levelup]. Intended as binary-compatible alternative to [`multilevel`][multilevel].
+[![npm package version](https://img.shields.io/npm/v/level-geography)](https://www.npmjs.com/package/level-geography) [![npm downloads](https://img.shields.io/npm/dw/level-geography)](https://www.npmjs.com/package/level-geography) [![License](https://img.shields.io/npm/l/level-geography?color=blue)](https://www.npmjs.com/package/level-geography) [![Last commit](https://img.shields.io/github/last-commit/morganherlocker/level-geography)](https://github.com/morganherlocker/level-geography) [![Contributors](https://img.shields.io/github/contributors/morganherlocker/level-geography?color=blue)](https://github.com/morganherlocker/level-geography/graphs/contributors)
-## Streams
+Indexed geography storage in [`levelup`][levelup].
-**[Node.js stream](https://nodejs.org/api/stream.html) or [`pull-stream`](https://github.com/pull-stream/pull-stream) implementations for reading and writing data from/to [`levelup`][levelup].**
+### [`accountdown`][accountdown]
-### [`level-ws`][level-ws]
+[![npm package version](https://img.shields.io/npm/v/accountdown)](https://www.npmjs.com/package/accountdown) [![npm downloads](https://img.shields.io/npm/dw/accountdown)](https://www.npmjs.com/package/accountdown) [![License](https://img.shields.io/npm/l/accountdown?color=blue)](https://www.npmjs.com/package/accountdown) [![Last commit](https://img.shields.io/github/last-commit/substack/accountdown)](https://github.com/substack/accountdown) [![Contributors](https://img.shields.io/github/contributors/substack/accountdown?color=blue)](https://github.com/substack/accountdown/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/Level/level-ws)](https://github.com/Level/level-ws) [![Contributors](https://img.shields.io/github/contributors/Level/level-ws?color=brightgreen)](https://github.com/Level/level-ws/graphs/contributors)
+Persistent user accounts.
-General-case, streams3 writable stream for [`levelup`][levelup].
+### [`accountdown-model`][accountdown-model]
-### [`level-batch-stream`][level-batch-stream]
+[![npm package version](https://img.shields.io/npm/v/accountdown-model)](https://www.npmjs.com/package/accountdown-model) [![npm downloads](https://img.shields.io/npm/dw/accountdown-model)](https://www.npmjs.com/package/accountdown-model) [![License](https://img.shields.io/npm/l/accountdown-model?color=blue)](https://www.npmjs.com/package/accountdown-model) [![Last commit](https://img.shields.io/github/last-commit/sethvincent/accountdown-model)](https://github.com/sethvincent/accountdown-model) [![Contributors](https://img.shields.io/github/contributors/sethvincent/accountdown-model?color=blue)](https://github.com/sethvincent/accountdown-model/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/jcrugzz/level-batch-stream)](https://github.com/jcrugzz/level-batch-stream) [![Contributors](https://img.shields.io/github/contributors/jcrugzz/level-batch-stream?color=brightgreen)](https://github.com/jcrugzz/level-batch-stream/graphs/contributors)
+A wrapper around [`accountdown`][accountdown] that provides a few additional features
-Streams2 writable stream for [`levelup`][levelup].
+## Transience
-### [`level-writestream`][level-writestream]
+### [`cachedown`][cachedown]
-[![Last commit](https://img.shields.io/github/last-commit/pgte/level-writestream)](https://github.com/pgte/level-writestream) [![Contributors](https://img.shields.io/github/contributors/pgte/level-writestream?color=brightgreen)](https://github.com/pgte/level-writestream/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/cachedown)](https://www.npmjs.com/package/cachedown) [![npm downloads](https://img.shields.io/npm/dw/cachedown)](https://www.npmjs.com/package/cachedown) [![License](https://img.shields.io/npm/l/cachedown?color=blue)](https://www.npmjs.com/package/cachedown) [![Last commit](https://img.shields.io/github/last-commit/mvayngrib/cachedown)](https://github.com/mvayngrib/cachedown) [![Contributors](https://img.shields.io/github/contributors/mvayngrib/cachedown?color=blue)](https://github.com/mvayngrib/cachedown/graphs/contributors)
-Streams2 writable stream for [`levelup`][levelup].
+LRU cache implemented as an [`abstract-leveldown`][abstract-leveldown] layer.
-### [`level-write-stream`][level-write-stream]
+### [`level-ttl`][level-ttl]
-[![Last commit](https://img.shields.io/github/last-commit/Raynos/level-write-stream)](https://github.com/Raynos/level-write-stream) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-write-stream?color=brightgreen)](https://github.com/Raynos/level-write-stream/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-ttl)](https://www.npmjs.com/package/level-ttl) [![npm downloads](https://img.shields.io/npm/dw/level-ttl)](https://www.npmjs.com/package/level-ttl) [![License](https://img.shields.io/npm/l/level-ttl?color=blue)](https://www.npmjs.com/package/level-ttl) [![Last commit](https://img.shields.io/github/last-commit/Level/level-ttl)](https://github.com/Level/level-ttl) [![Contributors](https://img.shields.io/github/contributors/Level/level-ttl?color=blue)](https://github.com/Level/level-ttl/graphs/contributors)
-Streams1 writable stream for [`levelup`][levelup] or [`abstract-leveldown`][abstract-leveldown].
+Add a `ttl` (time-to-live) option to [`levelup`][levelup]. NB. Suffers from race issues. See also [`tiny-level-ttl`][tiny-level-ttl].
-### [`pull-level`][pull-level]
+### [`tiny-level-ttl`][tiny-level-ttl]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/pull-level)](https://github.com/dominictarr/pull-level) [![Contributors](https://img.shields.io/github/contributors/dominictarr/pull-level?color=brightgreen)](https://github.com/dominictarr/pull-level/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/tiny-level-ttl)](https://www.npmjs.com/package/tiny-level-ttl) [![npm downloads](https://img.shields.io/npm/dw/tiny-level-ttl)](https://www.npmjs.com/package/tiny-level-ttl) [![License](https://img.shields.io/npm/l/tiny-level-ttl?color=blue)](https://www.npmjs.com/package/tiny-level-ttl) [![Last commit](https://img.shields.io/github/last-commit/ArtskydJ/tiny-level-ttl)](https://github.com/ArtskydJ/tiny-level-ttl) [![Contributors](https://img.shields.io/github/contributors/ArtskydJ/tiny-level-ttl?color=blue)](https://github.com/ArtskydJ/tiny-level-ttl/graphs/contributors)
-[`pull-stream`](https://github.com/pull-stream/pull-stream) interface to [`levelup`][levelup] with read streams, write streams and realtime (tail/live) reads.
+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-stream`][level-live-stream]
+### [`level-live-cache`][level-live-cache]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-live-stream)](https://github.com/dominictarr/level-live-stream) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-live-stream?color=brightgreen)](https://github.com/dominictarr/level-live-stream/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-live-cache)](https://www.npmjs.com/package/level-live-cache) [![npm downloads](https://img.shields.io/npm/dw/level-live-cache)](https://www.npmjs.com/package/level-live-cache) [![License](https://img.shields.io/npm/l/level-live-cache?color=blue)](https://www.npmjs.com/package/level-live-cache) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-live-cache)](https://github.com/juliangruber/level-live-cache) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-live-cache?color=blue)](https://github.com/juliangruber/level-live-cache/graphs/contributors)
-Like `db.createReadStream()` except it's live / tailable. i.e. instead of ending, it will stay open and stream changes to the database as they are inserted.
+An in-memory cache that keeps up to date with its source.
-### [`level-live`][level-live]
+### [`level-lru-cache`][level-lru-cache]
-[![Last commit](https://img.shields.io/github/last-commit/voltraco/level-live)](https://github.com/voltraco/level-live) [![Contributors](https://img.shields.io/github/contributors/voltraco/level-live?color=brightgreen)](https://github.com/voltraco/level-live/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-lru-cache)](https://www.npmjs.com/package/level-lru-cache) [![npm downloads](https://img.shields.io/npm/dw/level-lru-cache)](https://www.npmjs.com/package/level-lru-cache) [![License](https://img.shields.io/npm/l/level-lru-cache?color=blue)](https://www.npmjs.com/package/level-lru-cache) [![Last commit](https://img.shields.io/github/last-commit/kemitchell/level-lru-cache.js)](https://github.com/kemitchell/level-lru-cache.js) [![Contributors](https://img.shields.io/github/contributors/kemitchell/level-lru-cache.js?color=blue)](https://github.com/kemitchell/level-lru-cache.js/graphs/contributors)
-Simple, light and correct live read stream implementation. NB. Uses an undefined streams version.
+Simple LRU cache.
-### [`level-livefeed`][level-livefeed]
+### [`level-ttl-cache`][level-ttl-cache]
-[![Last commit](https://img.shields.io/github/last-commit/Raynos/level-livefeed)](https://github.com/Raynos/level-livefeed) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-livefeed?color=brightgreen)](https://github.com/Raynos/level-livefeed/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-ttl-cache)](https://www.npmjs.com/package/level-ttl-cache) [![npm downloads](https://img.shields.io/npm/dw/level-ttl-cache)](https://www.npmjs.com/package/level-ttl-cache) [![License](https://img.shields.io/npm/l/level-ttl-cache?color=blue)](https://www.npmjs.com/package/level-ttl-cache) [![Last commit](https://img.shields.io/github/last-commit/rvagg/level-ttl-cache)](https://github.com/rvagg/level-ttl-cache) [![Contributors](https://img.shields.io/github/contributors/rvagg/level-ttl-cache?color=blue)](https://github.com/rvagg/level-ttl-cache/graphs/contributors)
-A live query of a range in [`levelup`][levelup]. Similar to [`level-live-stream`][level-live-stream] but with a streams2 interface.
+A pass-through cache for arbitrary objects or binary data using LevelDB, expired by a TTL.
-### [`level-range`][level-range]
+### [`level-cache`][level-cache]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-range)](https://github.com/juliangruber/level-range) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-range?color=brightgreen)](https://github.com/juliangruber/level-range/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-cache)](https://www.npmjs.com/package/level-cache) [![npm downloads](https://img.shields.io/npm/dw/level-cache)](https://www.npmjs.com/package/level-cache) [![License](https://img.shields.io/npm/l/level-cache?color=blue)](https://www.npmjs.com/package/level-cache) [![Last commit](https://img.shields.io/github/last-commit/Raynos/level-cache)](https://github.com/Raynos/level-cache) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-cache?color=blue)](https://github.com/Raynos/level-cache/graphs/contributors)
-Find all K/V-pairs prefixed by a certain key. Streams1.
+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.
-### [`level-cursor`][level-cursor]
+### [`levelup-cache`][levelup-cache]
-[![Last commit](https://img.shields.io/github/last-commit/kordon/cursor)](https://github.com/kordon/cursor) [![Contributors](https://img.shields.io/github/contributors/kordon/cursor?color=brightgreen)](https://github.com/kordon/cursor/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/levelup-cache)](https://www.npmjs.com/package/levelup-cache) [![npm downloads](https://img.shields.io/npm/dw/levelup-cache)](https://www.npmjs.com/package/levelup-cache) [![License](https://img.shields.io/npm/l/levelup-cache?color=blue)](https://www.npmjs.com/package/levelup-cache) [![Last commit](https://img.shields.io/github/last-commit/TehShrike/levelup-cache)](https://github.com/TehShrike/levelup-cache) [![Contributors](https://img.shields.io/github/contributors/TehShrike/levelup-cache?color=blue)](https://github.com/TehShrike/levelup-cache/graphs/contributors)
-A stream "cursor" to iterate through a ReadStream / KeyStream / ValueStream.
+Use [`levelup`][levelup] to cache remote data.
-### [`level-glob`][level-glob]
+## Atomicity
-[![Last commit](https://img.shields.io/github/last-commit/vweevers/level-glob)](https://github.com/vweevers/level-glob) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-glob?color=brightgreen)](https://github.com/vweevers/level-glob/graphs/contributors)
+### [`level-lock`][level-lock]
-A streams2 read stream filtered and ordered by glob patterns. Keys in the database should be unix-like paths.
+[![npm package version](https://img.shields.io/npm/v/level-lock)](https://www.npmjs.com/package/level-lock) [![npm downloads](https://img.shields.io/npm/dw/level-lock)](https://www.npmjs.com/package/level-lock) [![License](https://img.shields.io/npm/l/level-lock?color=blue)](https://www.npmjs.com/package/level-lock) [![Last commit](https://img.shields.io/github/last-commit/substack/level-lock)](https://github.com/substack/level-lock) [![Contributors](https://img.shields.io/github/contributors/substack/level-lock?color=blue)](https://github.com/substack/level-lock/graphs/contributors)
-## Iterators
+In-memory advisory read/write locks for [`levelup`][levelup] keys.
-**Modules that operate on [`abstract-leveldown`][abstract-leveldown] iterators.**
+### [`level-mutex`][level-mutex]
-### [`level-concat-iterator`][level-concat-iterator]
+[![npm package version](https://img.shields.io/npm/v/level-mutex)](https://www.npmjs.com/package/level-mutex) [![npm downloads](https://img.shields.io/npm/dw/level-mutex)](https://www.npmjs.com/package/level-mutex) [![License](https://img.shields.io/npm/l/level-mutex?color=blue)](https://www.npmjs.com/package/level-mutex) [![Last commit](https://img.shields.io/github/last-commit/mikeal/level-mutex)](https://github.com/mikeal/level-mutex) [![Contributors](https://img.shields.io/github/contributors/mikeal/level-mutex?color=blue)](https://github.com/mikeal/level-mutex/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/Level/concat-iterator)](https://github.com/Level/concat-iterator) [![Contributors](https://img.shields.io/github/contributors/Level/concat-iterator?color=brightgreen)](https://github.com/Level/concat-iterator/graphs/contributors)
+Mutex read/write lock for [`levelup`][levelup].
-Concatenate items from an iterator into an array.
+### [`level-updater`][level-updater]
-### [`level-iterator-stream`][level-iterator-stream]
+[![npm package version](https://img.shields.io/npm/v/level-updater)](https://www.npmjs.com/package/level-updater) [![npm downloads](https://img.shields.io/npm/dw/level-updater)](https://www.npmjs.com/package/level-updater) [![License](https://img.shields.io/npm/l/level-updater?color=blue)](https://www.npmjs.com/package/level-updater) [![Last commit](https://img.shields.io/github/last-commit/hughsk/level-updater)](https://github.com/hughsk/level-updater) [![Contributors](https://img.shields.io/github/contributors/hughsk/level-updater?color=blue)](https://github.com/hughsk/level-updater/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/Level/iterator-stream)](https://github.com/Level/iterator-stream) [![Contributors](https://img.shields.io/github/contributors/Level/iterator-stream?color=brightgreen)](https://github.com/Level/iterator-stream/graphs/contributors)
+Update keys without overlapping changes - makes it possible to implement an atomic incrementer, JSON merger, etc.
-Turn an [`abstract-leveldown`][abstract-leveldown] iterator into a readable stream. Included in [`levelup`][levelup].
+### [`levelplus`][levelplus]
-### [`levelup-async-iterator`][levelup-async-iterator]
+[![npm package version](https://img.shields.io/npm/v/levelplus)](https://www.npmjs.com/package/levelplus) [![npm downloads](https://img.shields.io/npm/dw/levelplus)](https://www.npmjs.com/package/levelplus) [![License](https://img.shields.io/npm/l/levelplus?color=blue)](https://www.npmjs.com/package/levelplus) [![Last commit](https://img.shields.io/github/last-commit/https://github.com/eugeneware/levelplus)](https://github.com/https://github.com/eugeneware/levelplus) [![Contributors](https://img.shields.io/github/contributors/https://github.com/eugeneware/levelplus?color=blue)](https://github.com/https://github.com/eugeneware/levelplus/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/MeirionHughes/levelup-async-iterator)](https://github.com/MeirionHughes/levelup-async-iterator) [![Contributors](https://img.shields.io/github/contributors/MeirionHughes/levelup-async-iterator?color=brightgreen)](https://github.com/MeirionHughes/levelup-async-iterator/graphs/contributors)
+Adds atomic updates, increments, array pushes, set additions and user-defined atomic operations to [`levelup`][levelup].
-Add an `iterator()` method to [`levelup`][levelup] with [`Symbol.asyncIterator`](https://github.com/tc39/proposal-async-iteration). NB. Conflicts with [`iterator()`](https://github.com/Level/levelup/#iterator) added in `levelup@3.1.0`.
+### [`level-atomics`][level-atomics]
-### [`level-iterator`][level-iterator]
+[![npm package version](https://img.shields.io/npm/v/level-atomics)](https://www.npmjs.com/package/level-atomics) [![npm downloads](https://img.shields.io/npm/dw/level-atomics)](https://www.npmjs.com/package/level-atomics) [![License](https://img.shields.io/npm/l/level-atomics?color=blue)](https://www.npmjs.com/package/level-atomics) [![Last commit](https://img.shields.io/github/last-commit/IndigoUnited/node-level-atomics)](https://github.com/IndigoUnited/node-level-atomics) [![Contributors](https://img.shields.io/github/contributors/IndigoUnited/node-level-atomics?color=blue)](https://github.com/IndigoUnited/node-level-atomics/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/vweevers/level-iterator)](https://github.com/vweevers/level-iterator) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-iterator?color=brightgreen)](https://github.com/vweevers/level-iterator/graphs/contributors)
+Add (parallel) atomic operations like `insert`, `replace`, `increment` and `decrement` to [`levelup`][levelup].
-Decoding iterator for [`levelup`][levelup] instances. Wraps iterators like [`level-iterator-stream`][level-iterator-stream] does. NB. Not compatible with `levelup` >= 2 due to encodings having moved out to [`encoding-down`][encoding-down]. PR welcome.
+### [`level-transactions`][level-transactions]
-## Hooks
+[![npm package version](https://img.shields.io/npm/v/level-transactions)](https://www.npmjs.com/package/level-transactions) [![npm downloads](https://img.shields.io/npm/dw/level-transactions)](https://www.npmjs.com/package/level-transactions) [![License](https://img.shields.io/npm/l/level-transactions?color=blue)](https://www.npmjs.com/package/level-transactions) [![Last commit](https://img.shields.io/github/last-commit/cshum/level-transactions)](https://github.com/cshum/level-transactions) [![Contributors](https://img.shields.io/github/contributors/cshum/level-transactions?color=blue)](https://github.com/cshum/level-transactions/graphs/contributors)
-**Low-level utilities for hooking into a [`levelup`][levelup] instance.**
+Transaction layer for [`levelup`][levelup].
-### [`level-events`][level-events]
+## Jobs
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-events)](https://github.com/mafintosh/level-events) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-events?color=brightgreen)](https://github.com/mafintosh/level-events/graphs/contributors)
+### [`level-schedule`][level-schedule]
-Get an event everytime something is written / read / deleted using [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/level-schedule)](https://www.npmjs.com/package/level-schedule) [![npm downloads](https://img.shields.io/npm/dw/level-schedule)](https://www.npmjs.com/package/level-schedule) [![License](https://img.shields.io/npm/l/level-schedule?color=blue)](https://www.npmjs.com/package/level-schedule) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-schedule)](https://github.com/juliangruber/level-schedule) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-schedule?color=blue)](https://github.com/juliangruber/level-schedule/graphs/contributors)
-### [`level-hookdown`][level-hookdown]
+A durable job scheduler.
-[![Last commit](https://img.shields.io/github/last-commit/hypermodules/level-hookdown)](https://github.com/hypermodules/level-hookdown) [![Contributors](https://img.shields.io/github/contributors/hypermodules/level-hookdown?color=brightgreen)](https://github.com/hypermodules/level-hookdown/graphs/contributors)
+### [`level-jobs`][level-jobs]
-Simple [`levelup`][levelup] hooks.
+[![npm package version](https://img.shields.io/npm/v/level-jobs)](https://www.npmjs.com/package/level-jobs) [![npm downloads](https://img.shields.io/npm/dw/level-jobs)](https://www.npmjs.com/package/level-jobs) [![License](https://img.shields.io/npm/l/level-jobs?color=blue)](https://www.npmjs.com/package/level-jobs) [![Last commit](https://img.shields.io/github/last-commit/pgte/level-jobs)](https://github.com/pgte/level-jobs) [![Contributors](https://img.shields.io/github/contributors/pgte/level-jobs?color=blue)](https://github.com/pgte/level-jobs/graphs/contributors)
-### [`level-post`][level-post]
+Job Queue in [`levelup`][levelup].
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-post)](https://github.com/dominictarr/level-post) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-post?color=brightgreen)](https://github.com/dominictarr/level-post/graphs/contributors)
+### [`batchdb`][batchdb]
-Consistent post hooks for [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/batchdb)](https://www.npmjs.com/package/batchdb) [![npm downloads](https://img.shields.io/npm/dw/batchdb)](https://www.npmjs.com/package/batchdb) [![License](https://img.shields.io/npm/l/batchdb?color=blue)](https://www.npmjs.com/package/batchdb) [![Last commit](https://img.shields.io/github/last-commit/substack/batchdb)](https://github.com/substack/batchdb) [![Contributors](https://img.shields.io/github/contributors/substack/batchdb?color=blue)](https://github.com/substack/batchdb/graphs/contributors)
-### [`level-condition`][level-condition]
+[`levelup`][levelup] and disk storage for queued batch jobs.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-condition)](https://github.com/juliangruber/level-condition) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-condition?color=brightgreen)](https://github.com/juliangruber/level-condition/graphs/contributors)
+## File System
-Get notified when a condition is triggered inside a [`levelup`][levelup] instance.
+### [`level-filesystem`][level-filesystem]
-### [`level-hooks`][level-hooks]
+[![npm package version](https://img.shields.io/npm/v/level-filesystem)](https://www.npmjs.com/package/level-filesystem) [![npm downloads](https://img.shields.io/npm/dw/level-filesystem)](https://www.npmjs.com/package/level-filesystem) [![License](https://img.shields.io/npm/l/level-filesystem?color=blue)](https://www.npmjs.com/package/level-filesystem) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-filesystem)](https://github.com/mafintosh/level-filesystem) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-filesystem?color=blue)](https://github.com/mafintosh/level-filesystem/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-hooks)](https://github.com/dominictarr/level-hooks) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-hooks?color=brightgreen)](https://github.com/dominictarr/level-hooks/graphs/contributors)
+Full implementation of the Node.js `fs` module on top of [`levelup`][levelup].
-Implements a hook mechanism that allows you to intercept `put`, `delete` and `batch` operations. You can then turn those operations into batches. Useful if you want to turn a `put` into an atomic batch for say an automatic map operation.
NB. Author recommends using [`level-sublevel`][level-sublevel] instead of `level-hooks` directly. Note that [`level-sublevel`][level-sublevel] is not maintained.
+### [`browserify-fs`][browserify-fs]
-## Range Options
+[![npm package version](https://img.shields.io/npm/v/browserify-fs)](https://www.npmjs.com/package/browserify-fs) [![npm downloads](https://img.shields.io/npm/dw/browserify-fs)](https://www.npmjs.com/package/browserify-fs) [![License](https://img.shields.io/npm/l/browserify-fs?color=blue)](https://www.npmjs.com/package/browserify-fs) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/browserify-fs)](https://github.com/mafintosh/browserify-fs) [![Contributors](https://img.shields.io/github/contributors/mafintosh/browserify-fs?color=blue)](https://github.com/mafintosh/browserify-fs/graphs/contributors)
-**Utilities for working with range options, known as ltgt(e), common to [`levelup`][levelup] streams and [`abstract-leveldown`][abstract-leveldown] iterators.**
+[`level-filesystem`][level-filesystem] as drop-in `fs` replacement for the browser, to be used with `browserify`.
-### [`ltgt`][ltgt]
+### [`level-fs`][level-fs]
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/ltgt)](https://github.com/dominictarr/ltgt) [![Contributors](https://img.shields.io/github/contributors/dominictarr/ltgt?color=brightgreen)](https://github.com/dominictarr/ltgt/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-fs)](https://www.npmjs.com/package/level-fs) [![npm downloads](https://img.shields.io/npm/dw/level-fs)](https://www.npmjs.com/package/level-fs) [![License](https://img.shields.io/npm/l/level-fs?color=blue)](https://www.npmjs.com/package/level-fs) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-fs)](https://github.com/juliangruber/level-fs) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-fs?color=blue)](https://github.com/juliangruber/level-fs/graphs/contributors)
-Tool belt to find lower or upper bounds, compare and filter keys and more.
+Node's `fs` module with [`levelup`][levelup] as backend.
-### [`level-option-wrap`][level-option-wrap]
+### [`level-fs-browser`][level-fs-browser]
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-option-wrap)](https://github.com/substack/level-option-wrap) [![Contributors](https://img.shields.io/github/contributors/substack/level-option-wrap?color=brightgreen)](https://github.com/substack/level-option-wrap/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-fs-browser)](https://www.npmjs.com/package/level-fs-browser) [![npm downloads](https://img.shields.io/npm/dw/level-fs-browser)](https://www.npmjs.com/package/level-fs-browser) [![License](https://img.shields.io/npm/l/level-fs-browser?color=blue)](https://www.npmjs.com/package/level-fs-browser) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-fs-browser)](https://github.com/juliangruber/level-fs-browser) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-fs-browser?color=blue)](https://github.com/juliangruber/level-fs-browser/graphs/contributors)
-Wrap `ltgt` options with functions. Expose range options without leaking information about your internal key representations.
+[`level-fs`][level-fs] as drop-in `fs` replacement for the browser, to be used with `browserify`.
-### [`interval-to-ltgt`][interval-to-ltgt]
+### [`level-store`][level-store]
-[![Last commit](https://img.shields.io/github/last-commit/nowsecure/interval-to-ltgt)](https://github.com/nowsecure/interval-to-ltgt) [![Contributors](https://img.shields.io/github/contributors/nowsecure/interval-to-ltgt?color=brightgreen)](https://github.com/nowsecure/interval-to-ltgt/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-store)](https://www.npmjs.com/package/level-store) [![npm downloads](https://img.shields.io/npm/dw/level-store)](https://www.npmjs.com/package/level-store) [![License](https://img.shields.io/npm/l/level-store?color=blue)](https://www.npmjs.com/package/level-store) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-store)](https://github.com/juliangruber/level-store) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-store?color=blue)](https://github.com/juliangruber/level-store/graphs/contributors)
-Convert an interval string to an `ltgt` object. This is the counterpart to [`ltgt-to-interval`][ltgt-to-interval].
+A streaming storage engine based on [`levelup`][levelup].
-### [`ltgt-to-interval`][ltgt-to-interval]
+### [`level-serve`][level-serve]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/ltgt-to-interval)](https://github.com/juliangruber/ltgt-to-interval) [![Contributors](https://img.shields.io/github/contributors/juliangruber/ltgt-to-interval?color=brightgreen)](https://github.com/juliangruber/ltgt-to-interval/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-serve)](https://www.npmjs.com/package/level-serve) [![npm downloads](https://img.shields.io/npm/dw/level-serve)](https://www.npmjs.com/package/level-serve) [![License](https://img.shields.io/npm/l/level-serve?color=blue)](https://www.npmjs.com/package/level-serve) [![Last commit](https://img.shields.io/github/last-commit/Wayla/level-serve)](https://github.com/Wayla/level-serve) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-serve?color=blue)](https://github.com/Wayla/level-serve/graphs/contributors)
-Convert an `ltgt` object to an interval string. This is the counterpart to [`interval-to-ltgt`][interval-to-ltgt].
+Streaming static file server based on [`levelup`][levelup].
-### [`range-emitter`][range-emitter]
+### [`suckit`][suckit]
-[![Last commit](https://img.shields.io/github/last-commit/jameskyburz/range-emitter)](https://github.com/jameskyburz/range-emitter) [![Contributors](https://img.shields.io/github/contributors/jameskyburz/range-emitter?color=brightgreen)](https://github.com/jameskyburz/range-emitter/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/suckit)](https://www.npmjs.com/package/suckit) [![npm downloads](https://img.shields.io/npm/dw/suckit)](https://www.npmjs.com/package/suckit) [![License](https://img.shields.io/npm/l/suckit?color=blue)](https://www.npmjs.com/package/suckit) [![Last commit](https://img.shields.io/github/last-commit/deoxxa/suckit)](https://github.com/deoxxa/suckit) [![Contributors](https://img.shields.io/github/contributors/deoxxa/suckit?color=blue)](https://github.com/deoxxa/suckit/graphs/contributors)
-Range emitter. Publish keys and subscribe to ranges.
+Expose a [`level-store`][level-store] over HTTP.
-## Data Structures
+### [`level-vinyl`][level-vinyl]
-**Modules that utilize a specific key/value scheme to provide a higher-level data structure.**
+[![npm package version](https://img.shields.io/npm/v/level-vinyl)](https://www.npmjs.com/package/level-vinyl) [![npm downloads](https://img.shields.io/npm/dw/level-vinyl)](https://www.npmjs.com/package/level-vinyl) [![License](https://img.shields.io/npm/l/level-vinyl?color=blue)](https://www.npmjs.com/package/level-vinyl) [![Last commit](https://img.shields.io/github/last-commit/vweevers/level-vinyl)](https://github.com/vweevers/level-vinyl) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-vinyl?color=blue)](https://github.com/vweevers/level-vinyl/graphs/contributors)
-### [`merkle-dag`][merkle-dag]
+[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].
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/merkle-dag)](https://github.com/mafintosh/merkle-dag) [![Contributors](https://img.shields.io/github/contributors/mafintosh/merkle-dag?color=brightgreen)](https://github.com/mafintosh/merkle-dag/graphs/contributors)
+### [`level-blob`][level-blob]
-Merkle DAG on top of LevelDB
+[![npm package version](https://img.shields.io/npm/v/level-blob)](https://www.npmjs.com/package/level-blob) [![npm downloads](https://img.shields.io/npm/dw/level-blob)](https://www.npmjs.com/package/level-blob) [![License](https://img.shields.io/npm/l/level-blob?color=blue)](https://www.npmjs.com/package/level-blob) [![Last commit](https://img.shields.io/github/last-commit/crodas/level-blob)](https://github.com/crodas/level-blob) [![Contributors](https://img.shields.io/github/contributors/crodas/level-blob?color=blue)](https://github.com/crodas/level-blob/graphs/contributors)
-### [`merkle-patricia-tree`][merkle-patricia-tree]
+Store blobs in [`levelup`][levelup]
-[![Last commit](https://img.shields.io/github/last-commit/ethereumjs/merkle-patricia-tree)](https://github.com/ethereumjs/merkle-patricia-tree) [![Contributors](https://img.shields.io/github/contributors/ethereumjs/merkle-patricia-tree?color=brightgreen)](https://github.com/ethereumjs/merkle-patricia-tree/graphs/contributors)
+### [`level-blob-store`][level-blob-store]
-Implementation of the modified merkle patricia tree as specified in [Ethereum's yellow paper](http://gavwood.com/Paper.pdf).
+[![npm package version](https://img.shields.io/npm/v/level-blob-store)](https://www.npmjs.com/package/level-blob-store) [![npm downloads](https://img.shields.io/npm/dw/level-blob-store)](https://www.npmjs.com/package/level-blob-store) [![License](https://img.shields.io/npm/l/level-blob-store?color=blue)](https://www.npmjs.com/package/level-blob-store) [![Last commit](https://img.shields.io/github/last-commit/diasdavid/level-blob-store)](https://github.com/diasdavid/level-blob-store) [![Contributors](https://img.shields.io/github/contributors/diasdavid/level-blob-store?color=blue)](https://github.com/diasdavid/level-blob-store/graphs/contributors)
-### [`level-array`][level-array]
+An [`abstract-blob-store`](https://github.com/maxogden/abstract-blob-store) using LevelDB as the storage backend
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-array)](https://github.com/juliangruber/level-array) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-array?color=brightgreen)](https://github.com/juliangruber/level-array/graphs/contributors)
+### [`level-pull-blob-store`][level-pull-blob-store]
-The array datatype inside [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/level-pull-blob-store)](https://www.npmjs.com/package/level-pull-blob-store) [![npm downloads](https://img.shields.io/npm/dw/level-pull-blob-store)](https://www.npmjs.com/package/level-pull-blob-store) [![License](https://img.shields.io/npm/l/level-pull-blob-store?color=blue)](https://www.npmjs.com/package/level-pull-blob-store) [![Last commit](https://img.shields.io/github/last-commit/ipfs/js-level-pull-blob-store)](https://github.com/ipfs/js-level-pull-blob-store) [![Contributors](https://img.shields.io/github/contributors/ipfs/js-level-pull-blob-store?color=blue)](https://github.com/ipfs/js-level-pull-blob-store/graphs/contributors)
-### [`level-set`][level-set]
+A [`pull-blob-store`](https://github.com/ipfs/interface-pull-blob-store) implementation backed by LevelDB.
-[![Last commit](https://img.shields.io/github/last-commit/maiah/level-set)](https://github.com/maiah/level-set) [![Contributors](https://img.shields.io/github/contributors/maiah/level-set?color=brightgreen)](https://github.com/maiah/level-set/graphs/contributors)
+### [`level-server`][level-server]
-Add a `set` method to [`levelup`][levelup] for saving objects in a tree-like structure.
+[![npm package version](https://img.shields.io/npm/v/level-server)](https://www.npmjs.com/package/level-server) [![npm downloads](https://img.shields.io/npm/dw/level-server)](https://www.npmjs.com/package/level-server) [![License](https://img.shields.io/npm/l/level-server?color=blue)](https://www.npmjs.com/package/level-server) [![Last commit](https://img.shields.io/github/last-commit/Wayla/level-server)](https://github.com/Wayla/level-server) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-server?color=blue)](https://github.com/Wayla/level-server/graphs/contributors)
-### [`level-push`][level-push]
+Standalone LevelDB file server based on [`level-serve`][level-serve], [`multilevel`][multilevel] and [`level-sublevel`][level-sublevel].
-[![Last commit](https://img.shields.io/github/last-commit/maiah/level-push)](https://github.com/maiah/level-push) [![Contributors](https://img.shields.io/github/contributors/maiah/level-push?color=brightgreen)](https://github.com/maiah/level-push/graphs/contributors)
+## Utilities
-Add a `push` method to [`levelup`][levelup] for saving objects using [`level-set`][level-set] with auto-generated UUID.
+### [`level-transcoder`][level-transcoder]
-### [`level-version`][level-version]
+[![npm package version](https://img.shields.io/npm/v/level-transcoder)](https://www.npmjs.com/package/level-transcoder) [![npm downloads](https://img.shields.io/npm/dw/level-transcoder)](https://www.npmjs.com/package/level-transcoder) [![License](https://img.shields.io/npm/l/level-transcoder?color=blue)](https://www.npmjs.com/package/level-transcoder) [![Last commit](https://img.shields.io/github/last-commit/Level/transcoder)](https://github.com/Level/transcoder) [![Contributors](https://img.shields.io/github/contributors/Level/transcoder?color=blue)](https://github.com/Level/transcoder/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/brycebaril/level-version)](https://github.com/brycebaril/level-version) [![Contributors](https://img.shields.io/github/contributors/brycebaril/level-version?color=brightgreen)](https://github.com/brycebaril/level-version/graphs/contributors)
+Encode data with built-in or custom encodings. Used in [`abstract-level`][abstract-level].
-Store and retrieve versioned data in [`levelup`][levelup].
+### [`level-test`][level-test]
-### [`level-queue-type`][level-queue-type]
+[![npm package version](https://img.shields.io/npm/v/level-test)](https://www.npmjs.com/package/level-test) [![npm downloads](https://img.shields.io/npm/dw/level-test)](https://www.npmjs.com/package/level-test) [![License](https://img.shields.io/npm/l/level-test?color=blue)](https://www.npmjs.com/package/level-test) [![Last commit](https://img.shields.io/github/last-commit/Level/level-test)](https://github.com/Level/level-test) [![Contributors](https://img.shields.io/github/contributors/Level/level-test?color=blue)](https://github.com/Level/level-test/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/mcollina/level-queue-type)](https://github.com/mcollina/level-queue-type) [![Contributors](https://img.shields.io/github/contributors/mcollina/level-queue-type?color=brightgreen)](https://github.com/mcollina/level-queue-type/graphs/contributors)
+Inject temporary and isolated [`abstract-leveldown`][abstract-leveldown] stores ([`leveldown`][leveldown], [`level-js`][level-js], [`memdown`][memdown] or custom) into your tests.
-The queue datatype inside [`levelup`][levelup].
+### [`level-compose`][level-compose]
-### [`level-q`][level-q]
+[![npm package version](https://img.shields.io/npm/v/level-compose)](https://www.npmjs.com/package/level-compose) [![npm downloads](https://img.shields.io/npm/dw/level-compose)](https://www.npmjs.com/package/level-compose) [![License](https://img.shields.io/npm/l/level-compose?color=blue)](https://www.npmjs.com/package/level-compose) [![Last commit](https://img.shields.io/github/last-commit/Level/compose)](https://github.com/Level/compose) [![Contributors](https://img.shields.io/github/contributors/Level/compose?color=blue)](https://github.com/Level/compose/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-q)](https://github.com/eugeneware/level-q) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-q?color=brightgreen)](https://github.com/eugeneware/level-q/graphs/contributors)
+Compose a database factory from [`abstract-leveldown`][abstract-leveldown] and [`levelup`][levelup] layers. TBD if still relevant after [`abstract-level`][abstract-level].
-Priority queuing for [`levelup`][levelup].
+### [`level-exists`][level-exists]
-### [`qool`][qool]
+[![npm package version](https://img.shields.io/npm/v/level-exists)](https://www.npmjs.com/package/level-exists) [![npm downloads](https://img.shields.io/npm/dw/level-exists)](https://www.npmjs.com/package/level-exists) [![License](https://img.shields.io/npm/l/level-exists?color=blue)](https://www.npmjs.com/package/level-exists) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-exists)](https://github.com/juliangruber/level-exists) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-exists?color=blue)](https://github.com/juliangruber/level-exists/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/kessler/qool)](https://github.com/kessler/qool) [![Contributors](https://img.shields.io/github/contributors/kessler/qool?color=brightgreen)](https://github.com/kessler/qool/graphs/contributors)
+Check if a datum exists without reading its value.
-A queue backed by [`levelup`][levelup], durable and FIFO.
+### [`level-move`][level-move]
-### [`level-trie`][level-trie]
+[![npm package version](https://img.shields.io/npm/v/level-move)](https://www.npmjs.com/package/level-move) [![npm downloads](https://img.shields.io/npm/dw/level-move)](https://www.npmjs.com/package/level-move) [![License](https://img.shields.io/npm/l/level-move?color=blue)](https://www.npmjs.com/package/level-move) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-move)](https://github.com/juliangruber/level-move) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-move?color=blue)](https://github.com/juliangruber/level-move/graphs/contributors)
+
+Move a value to another key.
+
+### [`level-capped`][level-capped]
+
+[![npm package version](https://img.shields.io/npm/v/level-capped)](https://www.npmjs.com/package/level-capped) [![npm downloads](https://img.shields.io/npm/dw/level-capped)](https://www.npmjs.com/package/level-capped) [![License](https://img.shields.io/npm/l/level-capped?color=blue)](https://www.npmjs.com/package/level-capped) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-capped)](https://github.com/juliangruber/level-capped) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-capped?color=blue)](https://github.com/juliangruber/level-capped/graphs/contributors)
+
+Capped collections.
+
+### [`level-create`][level-create]
+
+[![npm package version](https://img.shields.io/npm/v/level-create)](https://www.npmjs.com/package/level-create) [![npm downloads](https://img.shields.io/npm/dw/level-create)](https://www.npmjs.com/package/level-create) [![License](https://img.shields.io/npm/l/level-create?color=blue)](https://www.npmjs.com/package/level-create) [![Last commit](https://img.shields.io/github/last-commit/substack/level-create)](https://github.com/substack/level-create) [![Contributors](https://img.shields.io/github/contributors/substack/level-create?color=blue)](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]
+
+[![npm package version](https://img.shields.io/npm/v/level-create-batch)](https://www.npmjs.com/package/level-create-batch) [![npm downloads](https://img.shields.io/npm/dw/level-create-batch)](https://www.npmjs.com/package/level-create-batch) [![License](https://img.shields.io/npm/l/level-create-batch?color=blue)](https://www.npmjs.com/package/level-create-batch) [![Last commit](https://img.shields.io/github/last-commit/substack/level-create-batch)](https://github.com/substack/level-create-batch) [![Contributors](https://img.shields.io/github/contributors/substack/level-create-batch?color=blue)](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]
+
+[![npm package version](https://img.shields.io/npm/v/level-modify)](https://www.npmjs.com/package/level-modify) [![npm downloads](https://img.shields.io/npm/dw/level-modify)](https://www.npmjs.com/package/level-modify) [![License](https://img.shields.io/npm/l/level-modify?color=blue)](https://www.npmjs.com/package/level-modify) [![Last commit](https://img.shields.io/github/last-commit/dskrepps/level-modify)](https://github.com/dskrepps/level-modify) [![Contributors](https://img.shields.io/github/contributors/dskrepps/level-modify?color=blue)](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]
+
+[![npm package version](https://img.shields.io/npm/v/level-random)](https://www.npmjs.com/package/level-random) [![npm downloads](https://img.shields.io/npm/dw/level-random)](https://www.npmjs.com/package/level-random) [![License](https://img.shields.io/npm/l/level-random?color=blue)](https://www.npmjs.com/package/level-random) [![Last commit](https://img.shields.io/github/last-commit/michaelnisi/level-random)](https://github.com/michaelnisi/level-random) [![Contributors](https://img.shields.io/github/contributors/michaelnisi/level-random?color=blue)](https://github.com/michaelnisi/level-random/graphs/contributors)
+
+Read values of random [`levelup`][levelup] keys.
+
+### [`level-shared-batch`][level-shared-batch]
+
+[![npm package version](https://img.shields.io/npm/v/level-shared-batch)](https://www.npmjs.com/package/level-shared-batch) [![npm downloads](https://img.shields.io/npm/dw/level-shared-batch)](https://www.npmjs.com/package/level-shared-batch) [![License](https://img.shields.io/npm/l/level-shared-batch?color=blue)](https://www.npmjs.com/package/level-shared-batch) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-shared-batch)](https://github.com/juliangruber/level-shared-batch) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-shared-batch?color=blue)](https://github.com/juliangruber/level-shared-batch/graphs/contributors)
+
+Share batches and commit collectively
+
+### [`batchlevel`][batchlevel]
+
+[![npm package version](https://img.shields.io/npm/v/batchlevel)](https://www.npmjs.com/package/batchlevel) [![npm downloads](https://img.shields.io/npm/dw/batchlevel)](https://www.npmjs.com/package/batchlevel) [![License](https://img.shields.io/npm/l/batchlevel?color=blue)](https://www.npmjs.com/package/batchlevel) [![Last commit](https://img.shields.io/github/last-commit/biobricks/batchlevel)](https://github.com/biobricks/batchlevel) [![Contributors](https://img.shields.io/github/contributors/biobricks/batchlevel?color=blue)](https://github.com/biobricks/batchlevel/graphs/contributors)
+
+Batch all operations made on a [`levelup`][levelup] instance. Compatible with [`subleveldown`][subleveldown].
+
+### [`ltest`][ltest]
+
+[![npm package version](https://img.shields.io/npm/v/ltest)](https://www.npmjs.com/package/ltest) [![npm downloads](https://img.shields.io/npm/dw/ltest)](https://www.npmjs.com/package/ltest) [![License](https://img.shields.io/npm/l/ltest?color=blue)](https://www.npmjs.com/package/ltest) [![Last commit](https://img.shields.io/github/last-commit/ralphtheninja/ltest)](https://github.com/ralphtheninja/ltest) [![Contributors](https://img.shields.io/github/contributors/ralphtheninja/ltest?color=blue)](https://github.com/ralphtheninja/ltest/graphs/contributors)
+
+Test function for [`levelup`][levelup] testing, based on [`level-test`][level-test].
+
+### [`level-probe`][level-probe]
+
+[![npm package version](https://img.shields.io/npm/v/level-probe)](https://www.npmjs.com/package/level-probe) [![npm downloads](https://img.shields.io/npm/dw/level-probe)](https://www.npmjs.com/package/level-probe) [![License](https://img.shields.io/npm/l/level-probe?color=blue)](https://www.npmjs.com/package/level-probe) [![Last commit](https://img.shields.io/github/last-commit/vweevers/level-probe)](https://github.com/vweevers/level-probe) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-probe?color=blue)](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]
+
+[![npm package version](https://img.shields.io/npm/v/autolevel)](https://www.npmjs.com/package/autolevel) [![npm downloads](https://img.shields.io/npm/dw/autolevel)](https://www.npmjs.com/package/autolevel) [![License](https://img.shields.io/npm/l/autolevel?color=blue)](https://www.npmjs.com/package/autolevel) [![Last commit](https://img.shields.io/github/last-commit/finwo/autolevel)](https://github.com/finwo/autolevel) [![Contributors](https://img.shields.io/github/contributors/finwo/autolevel?color=blue)](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]
+
+[![npm package version](https://img.shields.io/npm/v/level-lazy-open)](https://www.npmjs.com/package/level-lazy-open) [![npm downloads](https://img.shields.io/npm/dw/level-lazy-open)](https://www.npmjs.com/package/level-lazy-open) [![License](https://img.shields.io/npm/l/level-lazy-open?color=blue)](https://www.npmjs.com/package/level-lazy-open) [![Last commit](https://img.shields.io/github/last-commit/Level/lazy-open)](https://github.com/Level/lazy-open) [![Contributors](https://img.shields.io/github/contributors/Level/lazy-open?color=blue)](https://github.com/Level/lazy-open/graphs/contributors)
+
+Lazily open a leveldown compatible backend.
+
+### [`changeset`][changeset]
+
+[![npm package version](https://img.shields.io/npm/v/changeset)](https://www.npmjs.com/package/changeset) [![npm downloads](https://img.shields.io/npm/dw/changeset)](https://www.npmjs.com/package/changeset) [![License](https://img.shields.io/npm/l/changeset?color=blue)](https://www.npmjs.com/package/changeset) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/changeset)](https://github.com/eugeneware/changeset) [![Contributors](https://img.shields.io/github/contributors/eugeneware/changeset?color=blue)](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]
+
+[![npm package version](https://img.shields.io/npm/v/levelup-defaults)](https://www.npmjs.com/package/levelup-defaults) [![npm downloads](https://img.shields.io/npm/dw/levelup-defaults)](https://www.npmjs.com/package/levelup-defaults) [![License](https://img.shields.io/npm/l/levelup-defaults?color=blue)](https://www.npmjs.com/package/levelup-defaults) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/levelup-defaults)](https://github.com/mafintosh/levelup-defaults) [![Contributors](https://img.shields.io/github/contributors/mafintosh/levelup-defaults?color=blue)](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]
+
+[![npm package version](https://img.shields.io/npm/v/level-methods)](https://www.npmjs.com/package/level-methods) [![npm downloads](https://img.shields.io/npm/dw/level-methods)](https://www.npmjs.com/package/level-methods) [![License](https://img.shields.io/npm/l/level-methods?color=blue)](https://www.npmjs.com/package/level-methods) [![Last commit](https://img.shields.io/github/last-commit/Wayla/level-methods)](https://github.com/Wayla/level-methods) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-methods?color=blue)](https://github.com/Wayla/level-methods/graphs/contributors)
+
+Useful meta information about [`levelup`][levelup] methods.
+
+## Replication
+
+### [`level-2pc`][level-2pc]
+
+[![npm package version](https://img.shields.io/npm/v/level-2pc)](https://www.npmjs.com/package/level-2pc) [![npm downloads](https://img.shields.io/npm/dw/level-2pc)](https://www.npmjs.com/package/level-2pc) [![License](https://img.shields.io/npm/l/level-2pc?color=blue)](https://www.npmjs.com/package/level-2pc) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-2pc)](https://github.com/hij1nx/level-2pc) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-2pc?color=blue)](https://github.com/hij1nx/level-2pc/graphs/contributors)
+
+A two-phase commit protocol.
+
+### [`level-couch-sync`][level-couch-sync]
+
+[![npm package version](https://img.shields.io/npm/v/level-couch-sync)](https://www.npmjs.com/package/level-couch-sync) [![npm downloads](https://img.shields.io/npm/dw/level-couch-sync)](https://www.npmjs.com/package/level-couch-sync) [![License](https://img.shields.io/npm/l/level-couch-sync?color=blue)](https://www.npmjs.com/package/level-couch-sync) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-couch-sync)](https://github.com/dominictarr/level-couch-sync) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-couch-sync?color=blue)](https://github.com/dominictarr/level-couch-sync/graphs/contributors)
+
+Replicate from CouchDB to LevelDB.
+
+### [`level-master`][level-master]
+
+[![npm package version](https://img.shields.io/npm/v/level-master)](https://www.npmjs.com/package/level-master) [![npm downloads](https://img.shields.io/npm/dw/level-master)](https://www.npmjs.com/package/level-master) [![License](https://img.shields.io/npm/l/level-master?color=blue)](https://www.npmjs.com/package/level-master) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-master)](https://github.com/dominictarr/level-master) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-master?color=blue)](https://github.com/dominictarr/level-master/graphs/contributors)
+
+Master-Slave replication for [`levelup`][levelup].
+
+### [`level-merkle`][level-merkle]
+
+[![npm package version](https://img.shields.io/npm/v/level-merkle)](https://www.npmjs.com/package/level-merkle) [![npm downloads](https://img.shields.io/npm/dw/level-merkle)](https://www.npmjs.com/package/level-merkle) [![License](https://img.shields.io/npm/l/level-merkle?color=blue)](https://www.npmjs.com/package/level-merkle) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-merkle)](https://github.com/dominictarr/level-merkle) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-merkle?color=blue)](https://github.com/dominictarr/level-merkle/graphs/contributors)
+
+Uses [merkle-trees](http://en.wikipedia.org/wiki/Merkle_tree) to replicate data sets. Data must be sets and currently, deletes are not supported.
+
+### [`level-replicate`][level-replicate]
+
+[![npm package version](https://img.shields.io/npm/v/level-replicate)](https://www.npmjs.com/package/level-replicate) [![npm downloads](https://img.shields.io/npm/dw/level-replicate)](https://www.npmjs.com/package/level-replicate) [![License](https://img.shields.io/npm/l/level-replicate?color=blue)](https://www.npmjs.com/package/level-replicate) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-replicate)](https://github.com/dominictarr/level-replicate) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-replicate?color=blue)](https://github.com/dominictarr/level-replicate/graphs/contributors)
+
+Master-master replication with [`levelup`][levelup]. Implements scuttlebutt style handshake, syncs data, then replicates real time changes.
+
+### [`level-replicator`][level-replicator]
+
+[![npm package version](https://img.shields.io/npm/v/level-replicator)](https://www.npmjs.com/package/level-replicator) [![npm downloads](https://img.shields.io/npm/dw/level-replicator)](https://www.npmjs.com/package/level-replicator) [![License](https://img.shields.io/npm/l/level-replicator?color=blue)](https://www.npmjs.com/package/level-replicator) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-replicator)](https://github.com/hij1nx/level-replicator) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-replicator?color=blue)](https://github.com/hij1nx/level-replicator/graphs/contributors)
+
+Master-master replication. Same goal as [`level-replicate`][level-replicate] but different approach.
+
+## Tools
+
+**CLI, GUI and web interfaces for exploring data.**
+
+### [`lev2`][lev2]
+
+[![npm package version](https://img.shields.io/npm/v/lev2)](https://www.npmjs.com/package/lev2) [![npm downloads](https://img.shields.io/npm/dw/lev2)](https://www.npmjs.com/package/lev2) [![License](https://img.shields.io/npm/l/lev2?color=blue)](https://www.npmjs.com/package/lev2) [![Last commit](https://img.shields.io/github/last-commit/maxlath/lev2)](https://github.com/maxlath/lev2) [![Contributors](https://img.shields.io/github/contributors/maxlath/lev2?color=blue)](https://github.com/maxlath/lev2/graphs/contributors)
+
+A complete REPL & CLI for managing LevelDB instances
+
+### [`level-in`][level-in]
+
+[![npm package version](https://img.shields.io/npm/v/level-in)](https://www.npmjs.com/package/level-in) [![npm downloads](https://img.shields.io/npm/dw/level-in)](https://www.npmjs.com/package/level-in) [![License](https://img.shields.io/npm/l/level-in?color=blue)](https://www.npmjs.com/package/level-in) [![Last commit](https://img.shields.io/github/last-commit/fergiemcdowall/level-in)](https://github.com/fergiemcdowall/level-in) [![Contributors](https://img.shields.io/github/contributors/fergiemcdowall/level-in?color=blue)](https://github.com/fergiemcdowall/level-in/graphs/contributors)
+
+A simple command-line utility for writing data to LevelDB via [`levelup`][levelup].
+
+### [`level-out`][level-out]
+
+[![npm package version](https://img.shields.io/npm/v/level-out)](https://www.npmjs.com/package/level-out) [![npm downloads](https://img.shields.io/npm/dw/level-out)](https://www.npmjs.com/package/level-out) [![License](https://img.shields.io/npm/l/level-out?color=blue)](https://www.npmjs.com/package/level-out) [![Last commit](https://img.shields.io/github/last-commit/fergiemcdowall/level-out)](https://github.com/fergiemcdowall/level-out) [![Contributors](https://img.shields.io/github/contributors/fergiemcdowall/level-out?color=blue)](https://github.com/fergiemcdowall/level-out/graphs/contributors)
+
+A simple command-line utility for reading LevelDB data via [`levelup`][levelup].
+
+### [`level-key-list`][level-key-list]
+
+[![npm package version](https://img.shields.io/npm/v/level-key-list)](https://www.npmjs.com/package/level-key-list) [![npm downloads](https://img.shields.io/npm/dw/level-key-list)](https://www.npmjs.com/package/level-key-list) [![License](https://img.shields.io/npm/l/level-key-list?color=blue)](https://www.npmjs.com/package/level-key-list) [![Last commit](https://img.shields.io/github/last-commit/hughsk/level-key-list)](https://github.com/hughsk/level-key-list) [![Contributors](https://img.shields.io/github/contributors/hughsk/level-key-list?color=blue)](https://github.com/hughsk/level-key-list/graphs/contributors)
+
+Command-line tool for quickly printing a list of keys in a LevelDB database.
+
+### [`lev`][lev]
+
+[![npm package version](https://img.shields.io/npm/v/lev)](https://www.npmjs.com/package/lev) [![npm downloads](https://img.shields.io/npm/dw/lev)](https://www.npmjs.com/package/lev) [![License](https://img.shields.io/npm/l/lev?color=blue)](https://www.npmjs.com/package/lev) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/lev)](https://github.com/hij1nx/lev) [![Contributors](https://img.shields.io/github/contributors/hij1nx/lev?color=blue)](https://github.com/hij1nx/lev/graphs/contributors)
+
+A CLI REPL interface for LevelDB.
+
+### [`leveldb-repl`][leveldb-repl]
+
+[![npm package version](https://img.shields.io/npm/v/leveldb-repl)](https://www.npmjs.com/package/leveldb-repl) [![npm downloads](https://img.shields.io/npm/dw/leveldb-repl)](https://www.npmjs.com/package/leveldb-repl) [![License](https://img.shields.io/npm/l/leveldb-repl?color=blue)](https://www.npmjs.com/package/leveldb-repl) [![Last commit](https://img.shields.io/github/last-commit/lapwinglabs/leveldb-repl)](https://github.com/lapwinglabs/leveldb-repl) [![Contributors](https://img.shields.io/github/contributors/lapwinglabs/leveldb-repl?color=blue)](https://github.com/lapwinglabs/leveldb-repl/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-trie)](https://github.com/juliangruber/level-trie) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-trie?color=brightgreen)](https://github.com/juliangruber/level-trie/graphs/contributors)
+Super simple REPL for LevelDB. Supports filter globbing.
+
+### [`levelhud`][levelhud]
+
+[![npm package version](https://img.shields.io/npm/v/levelhud)](https://www.npmjs.com/package/levelhud) [![npm downloads](https://img.shields.io/npm/dw/levelhud)](https://www.npmjs.com/package/levelhud) [![License](https://img.shields.io/npm/l/levelhud?color=blue)](https://www.npmjs.com/package/levelhud) [![Last commit](https://img.shields.io/github/last-commit/ricardobeat/levelhud)](https://github.com/ricardobeat/levelhud) [![Contributors](https://img.shields.io/github/contributors/ricardobeat/levelhud?color=blue)](https://github.com/ricardobeat/levelhud/graphs/contributors)
+
+LevelDB GUI with an interactive console.
+
+### [`levelweb`][levelweb]
+
+[![npm package version](https://img.shields.io/npm/v/levelweb)](https://www.npmjs.com/package/levelweb) [![npm downloads](https://img.shields.io/npm/dw/levelweb)](https://www.npmjs.com/package/levelweb) [![License](https://img.shields.io/npm/l/levelweb?color=blue)](https://www.npmjs.com/package/levelweb) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/levelui)](https://github.com/hij1nx/levelui) [![Contributors](https://img.shields.io/github/contributors/hij1nx/levelui?color=blue)](https://github.com/hij1nx/levelui/graphs/contributors)
+
+A LevelDB GUI. Includes simple data visualization tools.
+
+### [`level-cli`][level-cli]
+
+[![npm package version](https://img.shields.io/npm/v/level-cli)](https://www.npmjs.com/package/level-cli) [![npm downloads](https://img.shields.io/npm/dw/level-cli)](https://www.npmjs.com/package/level-cli) [![License](https://img.shields.io/npm/l/level-cli?color=blue)](https://www.npmjs.com/package/level-cli) [![Last commit](https://img.shields.io/github/last-commit/mablay/level-cli)](https://github.com/mablay/level-cli) [![Contributors](https://img.shields.io/github/contributors/mablay/level-cli?color=blue)](https://github.com/mablay/level-cli/graphs/contributors)
+
+Interact with LevelDB on the command line.
+
+### [`level-explore`][level-explore]
+
+[![npm package version](https://img.shields.io/npm/v/level-explore)](https://www.npmjs.com/package/level-explore) [![npm downloads](https://img.shields.io/npm/dw/level-explore)](https://www.npmjs.com/package/level-explore) [![License](https://img.shields.io/npm/l/level-explore?color=blue)](https://www.npmjs.com/package/level-explore) [![Last commit](https://img.shields.io/github/last-commit/jcblw/level-explore)](https://github.com/jcblw/level-explore) [![Contributors](https://img.shields.io/github/contributors/jcblw/level-explore?color=blue)](https://github.com/jcblw/level-explore/graphs/contributors)
+
+A terminal program to visualize LevelDB data. Early stages.
+
+### [`level-repair`][level-repair]
+
+[![npm package version](https://img.shields.io/npm/v/level-repair)](https://www.npmjs.com/package/level-repair) [![npm downloads](https://img.shields.io/npm/dw/level-repair)](https://www.npmjs.com/package/level-repair) [![License](https://img.shields.io/npm/l/level-repair?color=blue)](https://www.npmjs.com/package/level-repair) [![Last commit](https://img.shields.io/github/last-commit/kesla/level-repair)](https://github.com/kesla/level-repair) [![Contributors](https://img.shields.io/github/contributors/kesla/level-repair?color=blue)](https://github.com/kesla/level-repair/graphs/contributors)
+
+CLI tool to repair a LevelDB.
+
+### [`leveldb-editor`][leveldb-editor]
+
+[![npm package version](https://img.shields.io/npm/v/leveldb-editor)](https://www.npmjs.com/package/leveldb-editor) [![npm downloads](https://img.shields.io/npm/dw/leveldb-editor)](https://www.npmjs.com/package/leveldb-editor) [![License](https://img.shields.io/npm/l/leveldb-editor?color=blue)](https://www.npmjs.com/package/leveldb-editor) [![Last commit](https://img.shields.io/github/last-commit/derhuerst/leveldb-editor)](https://github.com/derhuerst/leveldb-editor) [![Contributors](https://img.shields.io/github/contributors/derhuerst/leveldb-editor?color=blue)](https://github.com/derhuerst/leveldb-editor/graphs/contributors)
+
+Edit a LevelDB from the command line.
+
+### [`levelscan`][levelscan]
+
+[![npm package version](https://img.shields.io/npm/v/levelscan)](https://www.npmjs.com/package/levelscan) [![npm downloads](https://img.shields.io/npm/dw/levelscan)](https://www.npmjs.com/package/levelscan) [![License](https://img.shields.io/npm/l/levelscan?color=blue)](https://www.npmjs.com/package/levelscan) [![Last commit](https://img.shields.io/github/last-commit/joeledwards/node-levelscan)](https://github.com/joeledwards/node-levelscan) [![Contributors](https://img.shields.io/github/contributors/joeledwards/node-levelscan?color=blue)](https://github.com/joeledwards/node-levelscan/graphs/contributors)
+
+LevelDB command line scanning utility
+
+### [`levelui`][levelui]
+
+[![npm package version](https://img.shields.io/npm/v/levelui)](https://www.npmjs.com/package/levelui) [![npm downloads](https://img.shields.io/npm/dw/levelui)](https://www.npmjs.com/package/levelui) [![License](https://img.shields.io/npm/l/levelui?color=blue)](https://www.npmjs.com/package/levelui) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/levelui)](https://github.com/hij1nx/levelui) [![Contributors](https://img.shields.io/github/contributors/hij1nx/levelui?color=blue)](https://github.com/hij1nx/levelui/graphs/contributors)
+
+A LevelDB GUI based on [`atom-shell`](https://github.com/atom/atom-shell) (now called Electron).
+
+## Benchmarking & Debugging
+
+### [`level-bench`][level-bench]
+
+[![npm package version](https://img.shields.io/npm/v/level-bench)](https://www.npmjs.com/package/level-bench) [![npm downloads](https://img.shields.io/npm/dw/level-bench)](https://www.npmjs.com/package/level-bench) [![License](https://img.shields.io/npm/l/level-bench?color=blue)](https://www.npmjs.com/package/level-bench) [![Last commit](https://img.shields.io/github/last-commit/Level/bench)](https://github.com/Level/bench) [![Contributors](https://img.shields.io/github/contributors/Level/bench?color=blue)](https://github.com/Level/bench/graphs/contributors)
+
+Benchmark [`abstract-leveldown`][abstract-leveldown] and [`levelup`][levelup] stores.
+
+### [`level-compare-forks`][level-compare-forks]
+
+[![npm package version](https://img.shields.io/npm/v/level-compare-forks)](https://www.npmjs.com/package/level-compare-forks) [![npm downloads](https://img.shields.io/npm/dw/level-compare-forks)](https://www.npmjs.com/package/level-compare-forks) [![License](https://img.shields.io/npm/l/level-compare-forks?color=blue)](https://www.npmjs.com/package/level-compare-forks) [![Last commit](https://img.shields.io/github/last-commit/kesla/level-compare-forks)](https://github.com/kesla/level-compare-forks) [![Contributors](https://img.shields.io/github/contributors/kesla/level-compare-forks?color=blue)](https://github.com/kesla/level-compare-forks/graphs/contributors)
+
+Run benchmarks on different level-forks and see how they compare.
+
+### [`level-log`][level-log]
+
+[![npm package version](https://img.shields.io/npm/v/level-log)](https://www.npmjs.com/package/level-log) [![npm downloads](https://img.shields.io/npm/dw/level-log)](https://www.npmjs.com/package/level-log) [![License](https://img.shields.io/npm/l/level-log?color=blue)](https://www.npmjs.com/package/level-log) [![Last commit](https://img.shields.io/github/last-commit/micnews/level-log)](https://github.com/micnews/level-log) [![Contributors](https://img.shields.io/github/contributors/micnews/level-log?color=blue)](https://github.com/micnews/level-log/graphs/contributors)
+
+Log all [`levelup`][levelup] operations, including method calls.
+
+### [`debugdown`][debugdown]
+
+[![npm package version](https://img.shields.io/npm/v/debugdown)](https://www.npmjs.com/package/debugdown) [![npm downloads](https://img.shields.io/npm/dw/debugdown)](https://www.npmjs.com/package/debugdown) [![License](https://img.shields.io/npm/l/debugdown?color=blue)](https://www.npmjs.com/package/debugdown) [![Last commit](https://img.shields.io/github/last-commit/vweevers/debugdown)](https://github.com/vweevers/debugdown) [![Contributors](https://img.shields.io/github/contributors/vweevers/debugdown?color=blue)](https://github.com/vweevers/debugdown/graphs/contributors)
+
+Log all operations made on an [`abstract-leveldown`][abstract-leveldown] compliant store. For node and browsers.
+
+### [`level-time`][level-time]
+
+[![npm package version](https://img.shields.io/npm/v/level-time)](https://www.npmjs.com/package/level-time) [![npm downloads](https://img.shields.io/npm/dw/level-time)](https://www.npmjs.com/package/level-time) [![License](https://img.shields.io/npm/l/level-time?color=blue)](https://www.npmjs.com/package/level-time) [![Last commit](https://img.shields.io/github/last-commit/micnews/level-time)](https://github.com/micnews/level-time) [![Contributors](https://img.shields.io/github/contributors/micnews/level-time?color=blue)](https://github.com/micnews/level-time/graphs/contributors)
+
+Log [`levelup`][levelup] operations and their duration.
+
+### [`level-dump`][level-dump]
+
+[![npm package version](https://img.shields.io/npm/v/level-dump)](https://www.npmjs.com/package/level-dump) [![npm downloads](https://img.shields.io/npm/dw/level-dump)](https://www.npmjs.com/package/level-dump) [![License](https://img.shields.io/npm/l/level-dump?color=blue)](https://www.npmjs.com/package/level-dump) [![Last commit](https://img.shields.io/github/last-commit/thlorenz/level-dump)](https://github.com/thlorenz/level-dump) [![Contributors](https://img.shields.io/github/contributors/thlorenz/level-dump?color=blue)](https://github.com/thlorenz/level-dump/graphs/contributors)
+
+Dumps all values and/or keys of a [`levelup`][levelup] or [`level-sublevel`][level-sublevel] instance to the console.
+
+### [`level-benchmarks`][level-benchmarks]
+
+[![npm package version](https://img.shields.io/npm/v/level-benchmarks)](https://www.npmjs.com/package/level-benchmarks) [![npm downloads](https://img.shields.io/npm/dw/level-benchmarks)](https://www.npmjs.com/package/level-benchmarks) [![License](https://img.shields.io/npm/l/level-benchmarks?color=blue)](https://www.npmjs.com/package/level-benchmarks) [![Last commit](https://img.shields.io/github/last-commit/kesla/level-benchmarks)](https://github.com/kesla/level-benchmarks) [![Contributors](https://img.shields.io/github/contributors/kesla/level-benchmarks?color=blue)](https://github.com/kesla/level-benchmarks/graphs/contributors)
+
+Run benchmarks against levelup-compatible engines
+
+## Resources
+
+### [`leveljs.org`][leveljs.org]
+
+Website for [Level][level-org]
+
+### [`level-community`][level-community]
+
+General discussion, cross-repo efforts and common information for projects in the community
+
+### [`electron-demo`][electron-demo]
+
+Demo app loading LevelDB into an Electron context.
+
+### [`browserify-starter`][browserify-starter]
+
+Demonstrates bundling [`level`][level] for browsers using [`browserify`](https://github.com/browserify/browserify).
+
+### [`webpack-starter`][webpack-starter]
+
+Demonstrates bundling [`level`][level] for browsers using [`webpack`](https://webpack.js.org/).
+
+### [`level-awesome`][level-awesome]
+
+An open list of awesome [Level][level-org] libraries and resources.
+
+### [`levelmeup`][levelmeup]
+
+Level Me Up Scotty! An intro to Node.js databases via a set of self-guided workshops.
+
+## Applications
+
+**Applications and libraries that use Level modules under the hood.**
+
+### [`ipfs`][ipfs]
+
+A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.
+
+### [`clocker`][clocker]
-The TRIE data structure and search algorithm, on top of [`levelup`][levelup].
+Track project hours
-### [`level-geospatial`][level-geospatial]
+### [`copy-on-write`][copy-on-write]
-[![Last commit](https://img.shields.io/github/last-commit/richorama/level-geospatial)](https://github.com/richorama/level-geospatial) [![Contributors](https://img.shields.io/github/contributors/richorama/level-geospatial?color=brightgreen)](https://github.com/richorama/level-geospatial/graphs/contributors)
+A copy-on-write FUSE implementation
-Store key values pairs with lat/lon coordinates, and query using a radius.
+### [`chrome-localstorage`][chrome-localstorage]
-### [`level-pathwise`][level-pathwise]
+CLI to manipulate Chrome and Chromium's localStorage on disk.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-pathwise)](https://github.com/juliangruber/level-pathwise) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-pathwise?color=brightgreen)](https://github.com/juliangruber/level-pathwise/graphs/contributors)
+### [`cipherhub`][cipherhub]
-Turn [`levelup`][levelup] into one huge object of arbitrary size! Efficiently and atomically update and read parts of it.
+Encrypt messages based on GitHub SSH public keys
-### [`level-places`][level-places]
+### [`code-music-studio`][code-music-studio]
-[![Last commit](https://img.shields.io/github/last-commit/Wayla/level-places)](https://github.com/Wayla/level-places) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-places?color=brightgreen)](https://github.com/Wayla/level-places/graphs/contributors)
+Design musical algorithms
-Store and retrieve places near a lat/long pair.
+### [`level-todo`][level-todo]
-### [`level-nearby-stream`][level-nearby-stream]
+A todo list using LevelDB.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-nearby-stream)](https://github.com/juliangruber/level-nearby-stream) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-nearby-stream?color=brightgreen)](https://github.com/juliangruber/level-nearby-stream/graphs/contributors)
+### [`electron-crash-report-service`][electron-crash-report-service]
-Stream in nearby places using the browser's geolocation and [`level-places`][level-places].
+Aggregate crash reports for Electron apps
-### [`level-tree`][level-tree]
+### [`cross-street-indexer`][cross-street-indexer]
-[![Last commit](https://img.shields.io/github/last-commit/calvinmetcalf/level-tree)](https://github.com/calvinmetcalf/level-tree) [![Contributors](https://img.shields.io/github/contributors/calvinmetcalf/level-tree?color=brightgreen)](https://github.com/calvinmetcalf/level-tree/graphs/contributors)
+Blazing fast tile based geocoder that matches cross street (road intersections) entirely sourced by OSM QA Tiles.
-Geospatial indexing for GeoJSON in [`levelup`][levelup]
+### [`lt-core`][lt-core]
-### [`level-list`][level-list]
+Time tracking library.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-list)](https://github.com/juliangruber/level-list) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-list?color=brightgreen)](https://github.com/juliangruber/level-list/graphs/contributors)
+### [`npm-search`][npm-search]
-Map lists of data stored in [`levelup`][levelup] to DOM elements.
+An index of npm using [`levelup`][levelup].
-### [`level-reactive`][level-reactive]
+### [`connect-level`][connect-level]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-reactive)](https://github.com/juliangruber/level-reactive) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-reactive?color=brightgreen)](https://github.com/juliangruber/level-reactive/graphs/contributors)
+A `connect` / `express` session store backed by LevelDB via [`levelup`][levelup].
-Reactive templating for data stored in [`levelup`][levelup].
+### [`hadron`][hadron]
-### [`level-paginate`][level-paginate]
+A hackable publishing platform using LevelDB as main database.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-paginate)](https://github.com/juliangruber/level-paginate) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-paginate?color=brightgreen)](https://github.com/juliangruber/level-paginate/graphs/contributors)
+### [`groove basin`][groove basin]
-Streaming pagination for [`levelup`][levelup].
+Music player server with a web-based user interface. Uses [`levelup`][levelup] for the music library database.
-### [`level-average`][level-average]
+### [`prerender-level-cache`][prerender-level-cache]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-average)](https://github.com/juliangruber/level-average) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-average?color=brightgreen)](https://github.com/juliangruber/level-average/graphs/contributors)
+[Prerender](https://github.com/prerender/prerender) plugin to use level as a cache store.
-Calculate rolling averages in [`levelup`][levelup].
+### [`tsd`][tsd]
-### [`level-sum`][level-sum]
+Spin up a quick server to visualize time series data.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sum)](https://github.com/juliangruber/level-sum) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sum?color=brightgreen)](https://github.com/juliangruber/level-sum/graphs/contributors)
+### [`appfeed`][appfeed]
-Calculate sums in [`levelup`][levelup] and get live updates.
+Version feed for trusted application delivery
-### [`level-historical-json`][level-historical-json]
+### [`arrivals-osx`][arrivals-osx]
-[![Last commit](https://img.shields.io/github/last-commit/ellell/level-historical-json)](https://github.com/ellell/level-historical-json) [![Contributors](https://img.shields.io/github/contributors/ellell/level-historical-json?color=brightgreen)](https://github.com/ellell/level-historical-json/graphs/contributors)
+Watch a folder for audio and video arrivals and convert them to Apple-friendly formats.
-Keep a history of all the changes of a JSON document.
+### [`bleach-log-server`][bleach-log-server]
-### [`level-immutable`][level-immutable]
+Keep track of bleach levels for a hot tub or a pool.
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-immutable)](https://github.com/eugeneware/level-immutable) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-immutable?color=brightgreen)](https://github.com/eugeneware/level-immutable/graphs/contributors)
+### [`browserify-cdn`][browserify-cdn]
-[`levelup`][levelup] immutable history and database snapshotting based on ideas in `datomic`.
+Browserify CDN. Caches browserify bundles in LevelDB.
-### [`level-model`][level-model]
+## Legacy
-[![Last commit](https://img.shields.io/github/last-commit/sethvincent/level-model)](https://github.com/sethvincent/level-model) [![Contributors](https://img.shields.io/github/contributors/sethvincent/level-model?color=brightgreen)](https://github.com/sethvincent/level-model/graphs/contributors)
+**Modules that are deprecated, archived or superseded. Listed here for the historical record.**
-A higher-level module for creating content models using [`levelup`][levelup] and JSON Schema validation.
+### [`levelup`][levelup]
-### [`level-stream`][level-stream]
+[![npm package version](https://img.shields.io/npm/v/levelup)](https://www.npmjs.com/package/levelup) [![npm downloads](https://img.shields.io/npm/dw/levelup)](https://www.npmjs.com/package/levelup) [![License](https://img.shields.io/npm/l/levelup?color=blue)](https://www.npmjs.com/package/levelup) [![Last commit](https://img.shields.io/github/last-commit/Level/levelup)](https://github.com/Level/levelup) [![Contributors](https://img.shields.io/github/contributors/Level/levelup?color=blue)](https://github.com/Level/levelup/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-stream)](https://github.com/juliangruber/level-stream) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-stream?color=brightgreen)](https://github.com/juliangruber/level-stream/graphs/contributors)
+Wrapper for [`abstract-leveldown`][abstract-leveldown] stores. Superseded by [`abstract-level`][abstract-level].
-Persist streams in [`levelup`][levelup].
+### [`abstract-leveldown`][abstract-leveldown]
-### [`level-stay`][level-stay]
+[![npm package version](https://img.shields.io/npm/v/abstract-leveldown)](https://www.npmjs.com/package/abstract-leveldown) [![npm downloads](https://img.shields.io/npm/dw/abstract-leveldown)](https://www.npmjs.com/package/abstract-leveldown) [![License](https://img.shields.io/npm/l/abstract-leveldown?color=blue)](https://www.npmjs.com/package/abstract-leveldown) [![Last commit](https://img.shields.io/github/last-commit/Level/abstract-leveldown)](https://github.com/Level/abstract-leveldown) [![Contributors](https://img.shields.io/github/contributors/Level/abstract-leveldown?color=blue)](https://github.com/Level/abstract-leveldown/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-stay)](https://github.com/juliangruber/level-stay) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-stay?color=brightgreen)](https://github.com/juliangruber/level-stay/graphs/contributors)
+An abstract prototype matching the [`leveldown`][leveldown] API. Superseded by [`abstract-level`][abstract-level].
-An alternative approach to storing scuttlebutts in [`levelup`][levelup].
+### [`level-mem`][level-mem]
-### [`skeyma`][skeyma]
+[![npm package version](https://img.shields.io/npm/v/level-mem)](https://www.npmjs.com/package/level-mem) [![npm downloads](https://img.shields.io/npm/dw/level-mem)](https://www.npmjs.com/package/level-mem) [![License](https://img.shields.io/npm/l/level-mem?color=blue)](https://www.npmjs.com/package/level-mem) [![Last commit](https://img.shields.io/github/last-commit/Level/level-mem)](https://github.com/Level/level-mem) [![Contributors](https://img.shields.io/github/contributors/Level/level-mem?color=blue)](https://github.com/Level/level-mem/graphs/contributors) ![levelup](https://img.shields.io/badge/levelup-5.1-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/jed/skeyma)](https://github.com/jed/skeyma) [![Contributors](https://img.shields.io/github/contributors/jed/skeyma?color=brightgreen)](https://github.com/jed/skeyma/graphs/contributors)
+Bundles [`memdown`][memdown] with [`levelup`][levelup] and [`encoding-down`][encoding-down]. Superseded by [`memory-level`][memory-level].
-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-rocksdb`][level-rocksdb]
-### [`level-autotable`][level-autotable]
+[![npm package version](https://img.shields.io/npm/v/level-rocksdb)](https://www.npmjs.com/package/level-rocksdb) [![npm downloads](https://img.shields.io/npm/dw/level-rocksdb)](https://www.npmjs.com/package/level-rocksdb) [![License](https://img.shields.io/npm/l/level-rocksdb?color=blue)](https://www.npmjs.com/package/level-rocksdb) [![Last commit](https://img.shields.io/github/last-commit/Level/level-rocksdb)](https://github.com/Level/level-rocksdb) [![Contributors](https://img.shields.io/github/contributors/Level/level-rocksdb?color=blue)](https://github.com/Level/level-rocksdb/graphs/contributors) ![levelup](https://img.shields.io/badge/levelup-5.1-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/santoshrajan/levelup-autotable)](https://github.com/santoshrajan/levelup-autotable) [![Contributors](https://img.shields.io/github/contributors/santoshrajan/levelup-autotable?color=brightgreen)](https://github.com/santoshrajan/levelup-autotable/graphs/contributors)
+Bundles [`rocksdb`][rocksdb] with [`levelup`][levelup] and [`encoding-down`][encoding-down].
-Auto incrementing keys with "fields" and "records".
+### [`level-hyper`][level-hyper]
-### [`level-forks`][level-forks]
+[![npm package version](https://img.shields.io/npm/v/level-hyper)](https://www.npmjs.com/package/level-hyper) [![npm downloads](https://img.shields.io/npm/dw/level-hyper)](https://www.npmjs.com/package/level-hyper) [![License](https://img.shields.io/npm/l/level-hyper?color=blue)](https://www.npmjs.com/package/level-hyper) [![Last commit](https://img.shields.io/github/last-commit/Level/level-hyper)](https://github.com/Level/level-hyper) [![Contributors](https://img.shields.io/github/contributors/Level/level-hyper?color=blue)](https://github.com/Level/level-hyper/graphs/contributors) ![levelup](https://img.shields.io/badge/levelup-3.0-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-forks)](https://github.com/substack/level-forks) [![Contributors](https://img.shields.io/github/contributors/substack/level-forks?color=brightgreen)](https://github.com/substack/level-forks/graphs/contributors)
+Bundles [`leveldown-hyper`][leveldown-hyper] with [`levelup`][levelup] and [`encoding-down`][encoding-down].
-Forking graph of cascading namespaces.
+### [`level-indexed`][level-indexed]
-### [`level-geo`][level-geo]
+[![npm package version](https://img.shields.io/npm/v/level-indexed)](https://www.npmjs.com/package/level-indexed) [![npm downloads](https://img.shields.io/npm/dw/level-indexed)](https://www.npmjs.com/package/level-indexed) [![License](https://img.shields.io/npm/l/level-indexed?color=blue)](https://www.npmjs.com/package/level-indexed) [![Last commit](https://img.shields.io/github/last-commit/kapetan/level-indexed)](https://github.com/kapetan/level-indexed) [![Contributors](https://img.shields.io/github/contributors/kapetan/level-indexed?color=blue)](https://github.com/kapetan/level-indexed/graphs/contributors) ![levelup](https://img.shields.io/badge/levelup-2.0-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/julianduque/level-geo)](https://github.com/julianduque/level-geo) [![Contributors](https://img.shields.io/github/contributors/julianduque/level-geo?color=brightgreen)](https://github.com/julianduque/level-geo/graphs/contributors)
+Bundles [`indexeddown`][indexeddown] with [`levelup`][levelup] and [`encoding-down`][encoding-down].
-A geospatial index for [`levelup`][levelup].
+### [`leveldown`][leveldown]
-### [`level-geography`][level-geography]
+[![npm package version](https://img.shields.io/npm/v/leveldown)](https://www.npmjs.com/package/leveldown) [![npm downloads](https://img.shields.io/npm/dw/leveldown)](https://www.npmjs.com/package/leveldown) [![License](https://img.shields.io/npm/l/leveldown?color=blue)](https://www.npmjs.com/package/leveldown) [![Last commit](https://img.shields.io/github/last-commit/Level/leveldown)](https://github.com/Level/leveldown) [![Contributors](https://img.shields.io/github/contributors/Level/leveldown?color=blue)](https://github.com/Level/leveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/morganherlocker/level-geography)](https://github.com/morganherlocker/level-geography) [![Contributors](https://img.shields.io/github/contributors/morganherlocker/level-geography?color=brightgreen)](https://github.com/morganherlocker/level-geography/graphs/contributors)
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [LevelDB](https://github.com/google/leveldb). Superseded by [`classic-level`][classic-level].
-Indexed geography storage in [`levelup`][levelup].
+### [`memdown`][memdown]
-### [`accountdown`][accountdown]
+[![npm package version](https://img.shields.io/npm/v/memdown)](https://www.npmjs.com/package/memdown) [![npm downloads](https://img.shields.io/npm/dw/memdown)](https://www.npmjs.com/package/memdown) [![License](https://img.shields.io/npm/l/memdown?color=blue)](https://www.npmjs.com/package/memdown) [![Last commit](https://img.shields.io/github/last-commit/Level/memdown)](https://github.com/Level/memdown) [![Contributors](https://img.shields.io/github/contributors/Level/memdown?color=blue)](https://github.com/Level/memdown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/substack/accountdown)](https://github.com/substack/accountdown) [![Contributors](https://img.shields.io/github/contributors/substack/accountdown?color=brightgreen)](https://github.com/substack/accountdown/graphs/contributors)
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [in-memory RBTree](https://www.npmjs.com/package/functional-red-black-tree). Superseded by [`memory-level`][memory-level].
-Persistent user accounts.
+### [`level-js`][level-js]
-### [`accountdown-model`][accountdown-model]
+[![npm package version](https://img.shields.io/npm/v/level-js)](https://www.npmjs.com/package/level-js) [![npm downloads](https://img.shields.io/npm/dw/level-js)](https://www.npmjs.com/package/level-js) [![License](https://img.shields.io/npm/l/level-js?color=blue)](https://www.npmjs.com/package/level-js) [![Last commit](https://img.shields.io/github/last-commit/Level/level.js)](https://github.com/Level/level.js) [![Contributors](https://img.shields.io/github/contributors/Level/level.js?color=blue)](https://github.com/Level/level.js/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/sethvincent/accountdown-model)](https://github.com/sethvincent/accountdown-model) [![Contributors](https://img.shields.io/github/contributors/sethvincent/accountdown-model?color=brightgreen)](https://github.com/sethvincent/accountdown-model/graphs/contributors)
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [IndexedDB](https://developer.mozilla.org/en-US/docs/IndexedDB). Superseded by [`browser-level`][browser-level].
-A wrapper around [`accountdown`][accountdown] that provides a few additional features
+### [`rocksdb`][rocksdb]
-## Transience
+[![npm package version](https://img.shields.io/npm/v/rocksdb)](https://www.npmjs.com/package/rocksdb) [![npm downloads](https://img.shields.io/npm/dw/rocksdb)](https://www.npmjs.com/package/rocksdb) [![License](https://img.shields.io/npm/l/rocksdb?color=blue)](https://www.npmjs.com/package/rocksdb) [![Last commit](https://img.shields.io/github/last-commit/Level/rocksdb)](https://github.com/Level/rocksdb) [![Contributors](https://img.shields.io/github/contributors/Level/rocksdb?color=blue)](https://github.com/Level/rocksdb/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg)
-### [`cachedown`][cachedown]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [RocksDB](https://github.com/facebook/rocksdb/).
-[![Last commit](https://img.shields.io/github/last-commit/mvayngrib/cachedown)](https://github.com/mvayngrib/cachedown) [![Contributors](https://img.shields.io/github/contributors/mvayngrib/cachedown?color=brightgreen)](https://github.com/mvayngrib/cachedown/graphs/contributors)
+### [`leveldown-hyper`][leveldown-hyper]
-LRU cache implemented as an [`abstract-leveldown`][abstract-leveldown] layer.
+[![npm package version](https://img.shields.io/npm/v/leveldown-hyper)](https://www.npmjs.com/package/leveldown-hyper) [![npm downloads](https://img.shields.io/npm/dw/leveldown-hyper)](https://www.npmjs.com/package/leveldown-hyper) [![License](https://img.shields.io/npm/l/leveldown-hyper?color=blue)](https://www.npmjs.com/package/leveldown-hyper) [![Last commit](https://img.shields.io/github/last-commit/Level/leveldown-hyper)](https://github.com/Level/leveldown-hyper) [![Contributors](https://img.shields.io/github/contributors/Level/leveldown-hyper?color=blue)](https://github.com/Level/leveldown-hyper/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-5.0-inactive.svg)
-### [`level-ttl`][level-ttl]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [HyperLevelDB](https://github.com/rescrv/HyperLevelDB).
-[![Last commit](https://img.shields.io/github/last-commit/Level/level-ttl)](https://github.com/Level/level-ttl) [![Contributors](https://img.shields.io/github/contributors/Level/level-ttl?color=brightgreen)](https://github.com/Level/level-ttl/graphs/contributors)
+### [`medeadown`][medeadown]
-Add a `ttl` (time-to-live) option to [`levelup`][levelup]. NB. Suffers from race issues. See also [`tiny-level-ttl`][tiny-level-ttl].
+[![npm package version](https://img.shields.io/npm/v/medeadown)](https://www.npmjs.com/package/medeadown) [![npm downloads](https://img.shields.io/npm/dw/medeadown)](https://www.npmjs.com/package/medeadown) [![License](https://img.shields.io/npm/l/medeadown?color=blue)](https://www.npmjs.com/package/medeadown) [![Last commit](https://img.shields.io/github/last-commit/kesla/medeadown)](https://github.com/kesla/medeadown) [![Contributors](https://img.shields.io/github/contributors/kesla/medeadown?color=blue)](https://github.com/kesla/medeadown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-3.0-inactive.svg)
-### [`tiny-level-ttl`][tiny-level-ttl]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [medea](https://github.com/argo/medea).
-[![Last commit](https://img.shields.io/github/last-commit/ArtskydJ/tiny-level-ttl)](https://github.com/ArtskydJ/tiny-level-ttl) [![Contributors](https://img.shields.io/github/contributors/ArtskydJ/tiny-level-ttl?color=brightgreen)](https://github.com/ArtskydJ/tiny-level-ttl/graphs/contributors)
+### [`jsondown`][jsondown]
-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].
+[![npm package version](https://img.shields.io/npm/v/jsondown)](https://www.npmjs.com/package/jsondown) [![npm downloads](https://img.shields.io/npm/dw/jsondown)](https://www.npmjs.com/package/jsondown) [![License](https://img.shields.io/npm/l/jsondown?color=blue)](https://www.npmjs.com/package/jsondown) [![Last commit](https://img.shields.io/github/last-commit/toolness/jsondown)](https://github.com/toolness/jsondown) [![Contributors](https://img.shields.io/github/contributors/toolness/jsondown?color=blue)](https://github.com/toolness/jsondown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.7-inactive.svg)
-### [`level-live-cache`][level-live-cache]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by JSON on disk.
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-live-cache)](https://github.com/juliangruber/level-live-cache) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-live-cache?color=brightgreen)](https://github.com/juliangruber/level-live-cache/graphs/contributors)
+### [`asyncstorage-down`][asyncstorage-down]
-An in-memory cache that keeps up to date with its source.
+[![npm package version](https://img.shields.io/npm/v/asyncstorage-down)](https://www.npmjs.com/package/asyncstorage-down) [![npm downloads](https://img.shields.io/npm/dw/asyncstorage-down)](https://www.npmjs.com/package/asyncstorage-down) [![License](https://img.shields.io/npm/l/asyncstorage-down?color=blue)](https://www.npmjs.com/package/asyncstorage-down) [![Last commit](https://img.shields.io/github/last-commit/tradle/asyncstorage-down)](https://github.com/tradle/asyncstorage-down) [![Contributors](https://img.shields.io/github/contributors/tradle/asyncstorage-down?color=blue)](https://github.com/tradle/asyncstorage-down/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.6-inactive.svg)
-### [`level-lru-cache`][level-lru-cache]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [AsyncStorage](https://facebook.github.io/react-native/docs/asyncstorage.html) (React Native).
-[![Last commit](https://img.shields.io/github/last-commit/kemitchell/level-lru-cache.js)](https://github.com/kemitchell/level-lru-cache.js) [![Contributors](https://img.shields.io/github/contributors/kemitchell/level-lru-cache.js?color=brightgreen)](https://github.com/kemitchell/level-lru-cache.js/graphs/contributors)
+### [`mongodown`][mongodown]
-Simple LRU cache.
+[![npm package version](https://img.shields.io/npm/v/mongodown)](https://www.npmjs.com/package/mongodown) [![npm downloads](https://img.shields.io/npm/dw/mongodown)](https://www.npmjs.com/package/mongodown) [![License](https://img.shields.io/npm/l/mongodown?color=blue)](https://www.npmjs.com/package/mongodown) [![Last commit](https://img.shields.io/github/last-commit/watson/mongodown)](https://github.com/watson/mongodown) [![Contributors](https://img.shields.io/github/contributors/watson/mongodown?color=blue)](https://github.com/watson/mongodown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.6-inactive.svg)
-### [`level-ttl-cache`][level-ttl-cache]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [MongoDB](https://www.mongodb.com/).
-[![Last commit](https://img.shields.io/github/last-commit/rvagg/level-ttl-cache)](https://github.com/rvagg/level-ttl-cache) [![Contributors](https://img.shields.io/github/contributors/rvagg/level-ttl-cache?color=brightgreen)](https://github.com/rvagg/level-ttl-cache/graphs/contributors)
+### [`sqldown`][sqldown]
-A pass-through cache for arbitrary objects or binary data using LevelDB, expired by a TTL.
+[![npm package version](https://img.shields.io/npm/v/sqldown)](https://www.npmjs.com/package/sqldown) [![npm downloads](https://img.shields.io/npm/dw/sqldown)](https://www.npmjs.com/package/sqldown) [![License](https://img.shields.io/npm/l/sqldown?color=blue)](https://www.npmjs.com/package/sqldown) [![Last commit](https://img.shields.io/github/last-commit/calvinmetcalf/sqldown)](https://github.com/calvinmetcalf/sqldown) [![Contributors](https://img.shields.io/github/contributors/calvinmetcalf/sqldown?color=blue)](https://github.com/calvinmetcalf/sqldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.1-inactive.svg)
-### [`level-cache`][level-cache]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [`sqlite3`](https://www.npmjs.com/package/sqlite3), [`pg`](https://www.npmjs.com/package/pg), [`mysql`](https://www.npmjs.com/package/mysql) or WebSQL.
-[![Last commit](https://img.shields.io/github/last-commit/Raynos/level-cache)](https://github.com/Raynos/level-cache) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-cache?color=brightgreen)](https://github.com/Raynos/level-cache/graphs/contributors)
+### [`dynamo-down`][dynamo-down]
-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.
+[![npm package version](https://img.shields.io/npm/v/dynamo-down)](https://www.npmjs.com/package/dynamo-down) [![npm downloads](https://img.shields.io/npm/dw/dynamo-down)](https://www.npmjs.com/package/dynamo-down) [![License](https://img.shields.io/npm/l/dynamo-down?color=blue)](https://www.npmjs.com/package/dynamo-down) [![Last commit](https://img.shields.io/github/last-commit/jed/dynamo-down)](https://github.com/jed/dynamo-down) [![Contributors](https://img.shields.io/github/contributors/jed/dynamo-down?color=blue)](https://github.com/jed/dynamo-down/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.1-inactive.svg)
-### [`levelup-cache`][levelup-cache]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb).
-[![Last commit](https://img.shields.io/github/last-commit/TehShrike/levelup-cache)](https://github.com/TehShrike/levelup-cache) [![Contributors](https://img.shields.io/github/contributors/TehShrike/levelup-cache?color=brightgreen)](https://github.com/TehShrike/levelup-cache/graphs/contributors)
+### [`azureleveldown`][azureleveldown]
-Use [`levelup`][levelup] to cache remote data.
+[![npm package version](https://img.shields.io/npm/v/azureleveldown)](https://www.npmjs.com/package/azureleveldown) [![npm downloads](https://img.shields.io/npm/dw/azureleveldown)](https://www.npmjs.com/package/azureleveldown) [![License](https://img.shields.io/npm/l/azureleveldown?color=blue)](https://www.npmjs.com/package/azureleveldown) [![Last commit](https://img.shields.io/github/last-commit/richorama/azureleveldown)](https://github.com/richorama/azureleveldown) [![Contributors](https://img.shields.io/github/contributors/richorama/azureleveldown?color=blue)](https://github.com/richorama/azureleveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.11-inactive.svg)
-## Atomicity
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by Windows Azure Table Storage.
-### [`level-lock`][level-lock]
+### [`fruitdown`][fruitdown]
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-lock)](https://github.com/substack/level-lock) [![Contributors](https://img.shields.io/github/contributors/substack/level-lock?color=brightgreen)](https://github.com/substack/level-lock/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/fruitdown)](https://www.npmjs.com/package/fruitdown) [![npm downloads](https://img.shields.io/npm/dw/fruitdown)](https://www.npmjs.com/package/fruitdown) [![License](https://img.shields.io/npm/l/fruitdown?color=blue)](https://www.npmjs.com/package/fruitdown) [![Last commit](https://img.shields.io/github/last-commit/nolanlawson/fruitdown)](https://github.com/nolanlawson/fruitdown) [![Contributors](https://img.shields.io/github/contributors/nolanlawson/fruitdown?color=blue)](https://github.com/nolanlawson/fruitdown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.12-inactive.svg)
-In-memory advisory read/write locks for [`levelup`][levelup] keys.
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by IndexedDB (Apple).
-### [`level-mutex`][level-mutex]
+### [`localstorage-down`][localstorage-down]
-[![Last commit](https://img.shields.io/github/last-commit/mikeal/level-mutex)](https://github.com/mikeal/level-mutex) [![Contributors](https://img.shields.io/github/contributors/mikeal/level-mutex?color=brightgreen)](https://github.com/mikeal/level-mutex/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/localstorage-down)](https://www.npmjs.com/package/localstorage-down) [![npm downloads](https://img.shields.io/npm/dw/localstorage-down)](https://www.npmjs.com/package/localstorage-down) [![License](https://img.shields.io/npm/l/localstorage-down?color=blue)](https://www.npmjs.com/package/localstorage-down) [![Last commit](https://img.shields.io/github/last-commit/No9/localstorage-down)](https://github.com/No9/localstorage-down) [![Contributors](https://img.shields.io/github/contributors/No9/localstorage-down?color=blue)](https://github.com/No9/localstorage-down/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.12-inactive.svg)
-Mutex read/write lock for [`levelup`][levelup].
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage).
-### [`level-updater`][level-updater]
+### [`riakdown`][riakdown]
-[![Last commit](https://img.shields.io/github/last-commit/hughsk/level-updater)](https://github.com/hughsk/level-updater) [![Contributors](https://img.shields.io/github/contributors/hughsk/level-updater?color=brightgreen)](https://github.com/hughsk/level-updater/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/riakdown)](https://www.npmjs.com/package/riakdown) [![npm downloads](https://img.shields.io/npm/dw/riakdown)](https://www.npmjs.com/package/riakdown) [![License](https://img.shields.io/npm/l/riakdown?color=blue)](https://www.npmjs.com/package/riakdown) [![Last commit](https://img.shields.io/github/last-commit/nlf/riakdown)](https://github.com/nlf/riakdown) [![Contributors](https://img.shields.io/github/contributors/nlf/riakdown?color=blue)](https://github.com/nlf/riakdown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.12-inactive.svg)
-Update keys without overlapping changes - makes it possible to implement an atomic incrementer, JSON merger, etc.
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [riakpbc](https://github.com/nlf/riakpbc).
-### [`levelplus`][levelplus]
+### [`mysqldown`][mysqldown]
-[![Last commit](https://img.shields.io/github/last-commit/https://github.com/eugeneware/levelplus)](https://github.com/https://github.com/eugeneware/levelplus) [![Contributors](https://img.shields.io/github/contributors/https://github.com/eugeneware/levelplus?color=brightgreen)](https://github.com/https://github.com/eugeneware/levelplus/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/mysqldown)](https://www.npmjs.com/package/mysqldown) [![npm downloads](https://img.shields.io/npm/dw/mysqldown)](https://www.npmjs.com/package/mysqldown) [![License](https://img.shields.io/npm/l/mysqldown?color=blue)](https://www.npmjs.com/package/mysqldown) [![Last commit](https://img.shields.io/github/last-commit/kesla/mysqldown)](https://github.com/kesla/mysqldown) [![Contributors](https://img.shields.io/github/contributors/kesla/mysqldown?color=blue)](https://github.com/kesla/mysqldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.7-inactive.svg)
-Adds atomic updates, increments, array pushes, set additions and user-defined atomic operations to [`levelup`][levelup].
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [MySQL](https://www.mysql.com/).
-### [`level-atomics`][level-atomics]
+### [`redisdown`][redisdown]
-[![Last commit](https://img.shields.io/github/last-commit/IndigoUnited/node-level-atomics)](https://github.com/IndigoUnited/node-level-atomics) [![Contributors](https://img.shields.io/github/contributors/IndigoUnited/node-level-atomics?color=brightgreen)](https://github.com/IndigoUnited/node-level-atomics/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/redisdown)](https://www.npmjs.com/package/redisdown) [![npm downloads](https://img.shields.io/npm/dw/redisdown)](https://www.npmjs.com/package/redisdown) [![License](https://img.shields.io/npm/l/redisdown?color=blue)](https://www.npmjs.com/package/redisdown) [![Last commit](https://img.shields.io/github/last-commit/hmalphettes/redisdown)](https://github.com/hmalphettes/redisdown) [![Contributors](https://img.shields.io/github/contributors/hmalphettes/redisdown?color=blue)](https://github.com/hmalphettes/redisdown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-0.0-inactive.svg)
-Add (parallel) atomic operations like `insert`, `replace`, `increment` and `decrement` to [`levelup`][levelup].
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [Redis](https://redis.io/).
-### [`level-transactions`][level-transactions]
+### [`leveldown-basho`][leveldown-basho]
-[![Last commit](https://img.shields.io/github/last-commit/cshum/level-transactions)](https://github.com/cshum/level-transactions) [![Contributors](https://img.shields.io/github/contributors/cshum/level-transactions?color=brightgreen)](https://github.com/cshum/level-transactions/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/leveldown-basho)](https://www.npmjs.com/package/leveldown-basho) [![npm downloads](https://img.shields.io/npm/dw/leveldown-basho)](https://www.npmjs.com/package/leveldown-basho) [![License](https://img.shields.io/npm/l/leveldown-basho?color=blue)](https://www.npmjs.com/package/leveldown-basho) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-missing-lightgrey.svg)
-Transaction layer for [`levelup`][levelup].
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [Basho's LevelDB fork](https://github.com/basho/leveldb).
-## Jobs
+### [`sheet-down`][sheet-down]
-### [`level-schedule`][level-schedule]
+[![npm package version](https://img.shields.io/npm/v/sheet-down)](https://www.npmjs.com/package/sheet-down) [![npm downloads](https://img.shields.io/npm/dw/sheet-down)](https://www.npmjs.com/package/sheet-down) [![License](https://img.shields.io/npm/l/sheet-down?color=blue)](https://www.npmjs.com/package/sheet-down) [![Last commit](https://img.shields.io/github/last-commit/jed/sheet-down)](https://github.com/jed/sheet-down) [![Contributors](https://img.shields.io/github/contributors/jed/sheet-down?color=blue)](https://github.com/jed/sheet-down/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-missing-lightgrey.svg)
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-schedule)](https://github.com/juliangruber/level-schedule) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-schedule?color=brightgreen)](https://github.com/juliangruber/level-schedule/graphs/contributors)
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [Google Sheets](https://docs.google.com/spreadsheets).
-A durable job scheduler.
+### [`indexeddown`][indexeddown]
-### [`level-jobs`][level-jobs]
+[![npm package version](https://img.shields.io/npm/v/indexeddown)](https://www.npmjs.com/package/indexeddown) [![npm downloads](https://img.shields.io/npm/dw/indexeddown)](https://www.npmjs.com/package/indexeddown) [![License](https://img.shields.io/npm/l/indexeddown?color=blue)](https://www.npmjs.com/package/indexeddown) [![Last commit](https://img.shields.io/github/last-commit/kapetan/indexeddown)](https://github.com/kapetan/indexeddown) [![Contributors](https://img.shields.io/github/contributors/kapetan/indexeddown?color=blue)](https://github.com/kapetan/indexeddown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-4.0-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/pgte/level-jobs)](https://github.com/pgte/level-jobs) [![Contributors](https://img.shields.io/github/contributors/pgte/level-jobs?color=brightgreen)](https://github.com/pgte/level-jobs/graphs/contributors)
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by IndexedDB.
-Job Queue in [`levelup`][levelup].
+### [`lmdb-leveldown`][lmdb-leveldown]
-### [`batchdb`][batchdb]
+[![npm package version](https://img.shields.io/npm/v/lmdb-leveldown)](https://www.npmjs.com/package/lmdb-leveldown) [![npm downloads](https://img.shields.io/npm/dw/lmdb-leveldown)](https://www.npmjs.com/package/lmdb-leveldown) [![License](https://img.shields.io/npm/l/lmdb-leveldown?color=blue)](https://www.npmjs.com/package/lmdb-leveldown) [![Last commit](https://img.shields.io/github/last-commit/chrbala/lmdb-leveldown)](https://github.com/chrbala/lmdb-leveldown) [![Contributors](https://img.shields.io/github/contributors/chrbala/lmdb-leveldown?color=blue)](https://github.com/chrbala/lmdb-leveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-4.0-inactive.svg)
-[![Last commit](https://img.shields.io/github/last-commit/substack/batchdb)](https://github.com/substack/batchdb) [![Contributors](https://img.shields.io/github/contributors/substack/batchdb?color=brightgreen)](https://github.com/substack/batchdb/graphs/contributors)
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by LMDB.
-[`levelup`][levelup] and disk storage for queued batch jobs.
+### [`localdown`][localdown]
-## File System
+[![npm package version](https://img.shields.io/npm/v/localdown)](https://www.npmjs.com/package/localdown) [![npm downloads](https://img.shields.io/npm/dw/localdown)](https://www.npmjs.com/package/localdown) [![License](https://img.shields.io/npm/l/localdown?color=blue)](https://www.npmjs.com/package/localdown) [![Last commit](https://img.shields.io/github/last-commit/bhoriuchi/localdown)](https://github.com/bhoriuchi/localdown) [![Contributors](https://img.shields.io/github/contributors/bhoriuchi/localdown?color=blue)](https://github.com/bhoriuchi/localdown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-4.0-inactive.svg)
-### [`level-filesystem`][level-filesystem]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by localStorage in Node.js.
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-filesystem)](https://github.com/mafintosh/level-filesystem) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-filesystem?color=brightgreen)](https://github.com/mafintosh/level-filesystem/graphs/contributors)
+### [`aerospike-leveldown`][aerospike-leveldown]
-Full implementation of the Node.js `fs` module on top of [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/aerospike-leveldown)](https://www.npmjs.com/package/aerospike-leveldown) [![npm downloads](https://img.shields.io/npm/dw/aerospike-leveldown)](https://www.npmjs.com/package/aerospike-leveldown) [![License](https://img.shields.io/npm/l/aerospike-leveldown?color=blue)](https://www.npmjs.com/package/aerospike-leveldown) [![Last commit](https://img.shields.io/github/last-commit/ProjectThor/aerospikedown)](https://github.com/ProjectThor/aerospikedown) [![Contributors](https://img.shields.io/github/contributors/ProjectThor/aerospikedown?color=blue)](https://github.com/ProjectThor/aerospikedown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.7-inactive.svg)
-### [`browserify-fs`][browserify-fs]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by Aerospike.
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/browserify-fs)](https://github.com/mafintosh/browserify-fs) [![Contributors](https://img.shields.io/github/contributors/mafintosh/browserify-fs?color=brightgreen)](https://github.com/mafintosh/browserify-fs/graphs/contributors)
+### [`s3leveldown`][s3leveldown]
-[`level-filesystem`][level-filesystem] as drop-in `fs` replacement for the browser, to be used with `browserify`.
+[![npm package version](https://img.shields.io/npm/v/s3leveldown)](https://www.npmjs.com/package/s3leveldown) [![npm downloads](https://img.shields.io/npm/dw/s3leveldown)](https://www.npmjs.com/package/s3leveldown) [![License](https://img.shields.io/npm/l/s3leveldown?color=blue)](https://www.npmjs.com/package/s3leveldown) [![Last commit](https://img.shields.io/github/last-commit/loune/s3leveldown)](https://github.com/loune/s3leveldown) [![Contributors](https://img.shields.io/github/contributors/loune/s3leveldown?color=blue)](https://github.com/loune/s3leveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg)
-### [`level-fs`][level-fs]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [AWS S3](https://aws.amazon.com/s3/).
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-fs)](https://github.com/juliangruber/level-fs) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-fs?color=brightgreen)](https://github.com/juliangruber/level-fs/graphs/contributors)
+### [`gaiadown-ts`][gaiadown-ts]
-Node's `fs` module with [`levelup`][levelup] as backend.
+[![npm package version](https://img.shields.io/npm/v/gaiadown-ts)](https://www.npmjs.com/package/gaiadown-ts) [![npm downloads](https://img.shields.io/npm/dw/gaiadown-ts)](https://www.npmjs.com/package/gaiadown-ts) [![License](https://img.shields.io/npm/l/gaiadown-ts?color=blue)](https://www.npmjs.com/package/gaiadown-ts) [![Last commit](https://img.shields.io/github/last-commit/acidleroy/gaiadown-ts)](https://github.com/acidleroy/gaiadown-ts) [![Contributors](https://img.shields.io/github/contributors/acidleroy/gaiadown-ts?color=blue)](https://github.com/acidleroy/gaiadown-ts/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.0-inactive.svg)
-### [`level-fs-browser`][level-fs-browser]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [Gaia](https://github.com/blockstack/gaia).
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-fs-browser)](https://github.com/juliangruber/level-fs-browser) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-fs-browser?color=brightgreen)](https://github.com/juliangruber/level-fs-browser/graphs/contributors)
+### [`dynamodb-leveldown`][dynamodb-leveldown]
-[`level-fs`][level-fs] as drop-in `fs` replacement for the browser, to be used with `browserify`.
+[![npm package version](https://img.shields.io/npm/v/dynamodb-leveldown)](https://www.npmjs.com/package/dynamodb-leveldown) [![npm downloads](https://img.shields.io/npm/dw/dynamodb-leveldown)](https://www.npmjs.com/package/dynamodb-leveldown) [![License](https://img.shields.io/npm/l/dynamodb-leveldown?color=blue)](https://www.npmjs.com/package/dynamodb-leveldown) [![Last commit](https://img.shields.io/github/last-commit/GioCirque/DynamoDb-LevelDown)](https://github.com/GioCirque/DynamoDb-LevelDown) [![Contributors](https://img.shields.io/github/contributors/GioCirque/DynamoDb-LevelDown?color=blue)](https://github.com/GioCirque/DynamoDb-LevelDown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.3-inactive.svg)
-### [`level-store`][level-store]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb/).
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-store)](https://github.com/juliangruber/level-store) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-store?color=brightgreen)](https://github.com/juliangruber/level-store/graphs/contributors)
+### [`localforagedown`][localforagedown]
-A streaming storage engine based on [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/localforagedown)](https://www.npmjs.com/package/localforagedown) [![npm downloads](https://img.shields.io/npm/dw/localforagedown)](https://www.npmjs.com/package/localforagedown) [![License](https://img.shields.io/npm/l/localforagedown?color=blue)](https://www.npmjs.com/package/localforagedown) [![Last commit](https://img.shields.io/github/last-commit/KsRyY/localforagedown)](https://github.com/KsRyY/localforagedown) [![Contributors](https://img.shields.io/github/contributors/KsRyY/localforagedown?color=blue)](https://github.com/KsRyY/localforagedown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.2-inactive.svg)
-### [`level-serve`][level-serve]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [localForage](https://github.com/localForage/localForage/).
-[![Last commit](https://img.shields.io/github/last-commit/Wayla/level-serve)](https://github.com/Wayla/level-serve) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-serve?color=brightgreen)](https://github.com/Wayla/level-serve/graphs/contributors)
+### [`react-native-leveldown`][react-native-leveldown]
-Streaming static file server based on [`levelup`][levelup].
+[![npm package version](https://img.shields.io/npm/v/react-native-leveldown)](https://www.npmjs.com/package/react-native-leveldown) [![npm downloads](https://img.shields.io/npm/dw/react-native-leveldown)](https://www.npmjs.com/package/react-native-leveldown) [![License](https://img.shields.io/npm/l/react-native-leveldown?color=blue)](https://www.npmjs.com/package/react-native-leveldown) [![Last commit](https://img.shields.io/github/last-commit/andymatuschak/react-native-leveldown)](https://github.com/andymatuschak/react-native-leveldown) [![Contributors](https://img.shields.io/github/contributors/andymatuschak/react-native-leveldown?color=blue)](https://github.com/andymatuschak/react-native-leveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.3-inactive.svg)
-### [`suckit`][suckit]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [LevelDB](https://github.com/google/leveldb) (React Native).
-[![Last commit](https://img.shields.io/github/last-commit/deoxxa/suckit)](https://github.com/deoxxa/suckit) [![Contributors](https://img.shields.io/github/contributors/deoxxa/suckit?color=brightgreen)](https://github.com/deoxxa/suckit/graphs/contributors)
+### [`networked-hyperbeedown`][networked-hyperbeedown]
-Expose a [`level-store`][level-store] over HTTP.
+[![npm package version](https://img.shields.io/npm/v/networked-hyperbeedown)](https://www.npmjs.com/package/networked-hyperbeedown) [![npm downloads](https://img.shields.io/npm/dw/networked-hyperbeedown)](https://www.npmjs.com/package/networked-hyperbeedown) [![License](https://img.shields.io/npm/l/networked-hyperbeedown?color=blue)](https://www.npmjs.com/package/networked-hyperbeedown) [![Last commit](https://img.shields.io/github/last-commit/RangerMauve/networked-hyperbeedown)](https://github.com/RangerMauve/networked-hyperbeedown) [![Contributors](https://img.shields.io/github/contributors/RangerMauve/networked-hyperbeedown?color=blue)](https://github.com/RangerMauve/networked-hyperbeedown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-missing-lightgrey.svg)
-### [`level-vinyl`][level-vinyl]
+An [`abstract-leveldown`][abstract-leveldown] implementation backed by [Hyperbee](https://github.com/hypercore-protocol/hyperbee/).
-[![Last commit](https://img.shields.io/github/last-commit/vweevers/level-vinyl)](https://github.com/vweevers/level-vinyl) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-vinyl?color=brightgreen)](https://github.com/vweevers/level-vinyl/graphs/contributors)
+### [`encoding-down`][encoding-down]
-[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].
+[![npm package version](https://img.shields.io/npm/v/encoding-down)](https://www.npmjs.com/package/encoding-down) [![npm downloads](https://img.shields.io/npm/dw/encoding-down)](https://www.npmjs.com/package/encoding-down) [![License](https://img.shields.io/npm/l/encoding-down?color=blue)](https://www.npmjs.com/package/encoding-down) [![Last commit](https://img.shields.io/github/last-commit/Level/encoding-down)](https://github.com/Level/encoding-down) [![Contributors](https://img.shields.io/github/contributors/Level/encoding-down?color=blue)](https://github.com/Level/encoding-down/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg)
-### [`level-blob`][level-blob]
+An [`abstract-leveldown`][abstract-leveldown] layer that provides key/value encoding. Superseded by [`abstract-level`][abstract-level].
-[![Last commit](https://img.shields.io/github/last-commit/crodas/level-blob)](https://github.com/crodas/level-blob) [![Contributors](https://img.shields.io/github/contributors/crodas/level-blob?color=brightgreen)](https://github.com/crodas/level-blob/graphs/contributors)
+### [`@adorsys/encrypt-down`][@adorsys/encrypt-down]
-Store blobs in [`levelup`][levelup]
+[![npm package version](https://img.shields.io/npm/v/@adorsys/encrypt-down)](https://www.npmjs.com/package/@adorsys/encrypt-down) [![npm downloads](https://img.shields.io/npm/dw/@adorsys/encrypt-down)](https://www.npmjs.com/package/@adorsys/encrypt-down) [![License](https://img.shields.io/npm/l/@adorsys/encrypt-down?color=blue)](https://www.npmjs.com/package/@adorsys/encrypt-down) [![Last commit](https://img.shields.io/github/last-commit/adorsys/encrypt-down)](https://github.com/adorsys/encrypt-down) [![Contributors](https://img.shields.io/github/contributors/adorsys/encrypt-down?color=blue)](https://github.com/adorsys/encrypt-down/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.3-inactive.svg)
-### [`level-blob-store`][level-blob-store]
+An [`abstract-leveldown`][abstract-leveldown] layer that provides encryption for values.
-[![Last commit](https://img.shields.io/github/last-commit/diasdavid/level-blob-store)](https://github.com/diasdavid/level-blob-store) [![Contributors](https://img.shields.io/github/contributors/diasdavid/level-blob-store?color=brightgreen)](https://github.com/diasdavid/level-blob-store/graphs/contributors)
+### [`deferred-leveldown`][deferred-leveldown]
-An [`abstract-blob-store`](https://github.com/maxogden/abstract-blob-store) using LevelDB as the storage backend
+[![npm package version](https://img.shields.io/npm/v/deferred-leveldown)](https://www.npmjs.com/package/deferred-leveldown) [![npm downloads](https://img.shields.io/npm/dw/deferred-leveldown)](https://www.npmjs.com/package/deferred-leveldown) [![License](https://img.shields.io/npm/l/deferred-leveldown?color=blue)](https://www.npmjs.com/package/deferred-leveldown) [![Last commit](https://img.shields.io/github/last-commit/Level/deferred-leveldown)](https://github.com/Level/deferred-leveldown) [![Contributors](https://img.shields.io/github/contributors/Level/deferred-leveldown?color=blue)](https://github.com/Level/deferred-leveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg)
-### [`level-pull-blob-store`][level-pull-blob-store]
+An [`abstract-leveldown`][abstract-leveldown] layer that handles delayed-open. Built into [`levelup`][levelup]. Both are superseded by [`abstract-level`][abstract-level].
-[![Last commit](https://img.shields.io/github/last-commit/ipfs/js-level-pull-blob-store)](https://github.com/ipfs/js-level-pull-blob-store) [![Contributors](https://img.shields.io/github/contributors/ipfs/js-level-pull-blob-store?color=brightgreen)](https://github.com/ipfs/js-level-pull-blob-store/graphs/contributors)
+### [`level-cowdown`][level-cowdown]
-A [`pull-blob-store`](https://github.com/ipfs/interface-pull-blob-store) implementation backed by LevelDB.
+[![npm package version](https://img.shields.io/npm/v/level-cowdown)](https://www.npmjs.com/package/level-cowdown) [![npm downloads](https://img.shields.io/npm/dw/level-cowdown)](https://www.npmjs.com/package/level-cowdown) [![License](https://img.shields.io/npm/l/level-cowdown?color=blue)](https://www.npmjs.com/package/level-cowdown) [![Last commit](https://img.shields.io/github/last-commit/substack/level-cowdown)](https://github.com/substack/level-cowdown) [![Contributors](https://img.shields.io/github/contributors/substack/level-cowdown?color=blue)](https://github.com/substack/level-cowdown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.4-inactive.svg)
-### [`level-server`][level-server]
+Copy-on-write [`abstract-leveldown`][abstract-leveldown] layer.
-[![Last commit](https://img.shields.io/github/last-commit/Wayla/level-server)](https://github.com/Wayla/level-server) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-server?color=brightgreen)](https://github.com/Wayla/level-server/graphs/contributors)
+### [`abstract-stream-leveldown`][abstract-stream-leveldown]
-Standalone LevelDB file server based on [`level-serve`][level-serve], [`multilevel`][multilevel] and [`level-sublevel`][level-sublevel].
+[![npm package version](https://img.shields.io/npm/v/abstract-stream-leveldown)](https://www.npmjs.com/package/abstract-stream-leveldown) [![npm downloads](https://img.shields.io/npm/dw/abstract-stream-leveldown)](https://www.npmjs.com/package/abstract-stream-leveldown) [![License](https://img.shields.io/npm/l/abstract-stream-leveldown?color=blue)](https://www.npmjs.com/package/abstract-stream-leveldown) [![Last commit](https://img.shields.io/github/last-commit/jed/abstract-stream-leveldown)](https://github.com/jed/abstract-stream-leveldown) [![Contributors](https://img.shields.io/github/contributors/jed/abstract-stream-leveldown?color=blue)](https://github.com/jed/abstract-stream-leveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-2.1-inactive.svg)
-## Utilities
+A stream-based [`abstract-leveldown`][abstract-leveldown] prototype.
-### [`level-codec`][level-codec]
+### [`level-iterator-stream`][level-iterator-stream]
-[![Last commit](https://img.shields.io/github/last-commit/Level/codec)](https://github.com/Level/codec) [![Contributors](https://img.shields.io/github/contributors/Level/codec?color=brightgreen)](https://github.com/Level/codec/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-iterator-stream)](https://www.npmjs.com/package/level-iterator-stream) [![npm downloads](https://img.shields.io/npm/dw/level-iterator-stream)](https://www.npmjs.com/package/level-iterator-stream) [![License](https://img.shields.io/npm/l/level-iterator-stream?color=blue)](https://www.npmjs.com/package/level-iterator-stream) [![Last commit](https://img.shields.io/github/last-commit/Level/iterator-stream)](https://github.com/Level/iterator-stream) [![Contributors](https://img.shields.io/github/contributors/Level/iterator-stream?color=blue)](https://github.com/Level/iterator-stream/graphs/contributors)
-Encode keys, values and ltgte options. Used in [`encoding-down`][encoding-down].
+Turn an [`abstract-leveldown`][abstract-leveldown] iterator into a readable stream. Included in [`levelup`][levelup]. For [`abstract-level`][abstract-level] databases, this is superseded by [`level-read-stream`][level-read-stream].
-### [`level-errors`][level-errors]
+### [`level-batch-stream`][level-batch-stream]
-[![Last commit](https://img.shields.io/github/last-commit/Level/errors)](https://github.com/Level/errors) [![Contributors](https://img.shields.io/github/contributors/Level/errors?color=brightgreen)](https://github.com/Level/errors/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-batch-stream)](https://www.npmjs.com/package/level-batch-stream) [![npm downloads](https://img.shields.io/npm/dw/level-batch-stream)](https://www.npmjs.com/package/level-batch-stream) [![License](https://img.shields.io/npm/l/level-batch-stream?color=blue)](https://www.npmjs.com/package/level-batch-stream) [![Last commit](https://img.shields.io/github/last-commit/jcrugzz/level-batch-stream)](https://github.com/jcrugzz/level-batch-stream) [![Contributors](https://img.shields.io/github/contributors/jcrugzz/level-batch-stream?color=blue)](https://github.com/jcrugzz/level-batch-stream/graphs/contributors)
-Error types for [`levelup`][levelup].
+Streams2 writable stream for [`levelup`][levelup].
-### [`level-test`][level-test]
+### [`level-writestream`][level-writestream]
-[![Last commit](https://img.shields.io/github/last-commit/Level/level-test)](https://github.com/Level/level-test) [![Contributors](https://img.shields.io/github/contributors/Level/level-test?color=brightgreen)](https://github.com/Level/level-test/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-writestream)](https://www.npmjs.com/package/level-writestream) [![npm downloads](https://img.shields.io/npm/dw/level-writestream)](https://www.npmjs.com/package/level-writestream) [![License](https://img.shields.io/npm/l/level-writestream?color=blue)](https://www.npmjs.com/package/level-writestream) [![Last commit](https://img.shields.io/github/last-commit/pgte/level-writestream)](https://github.com/pgte/level-writestream) [![Contributors](https://img.shields.io/github/contributors/pgte/level-writestream?color=blue)](https://github.com/pgte/level-writestream/graphs/contributors)
-Easily run your `level-*` tests against [all stores](#stores).
+Streams2 writable stream for [`levelup`][levelup].
-### [`level-compose`][level-compose]
+### [`level-write-stream`][level-write-stream]
-[![Last commit](https://img.shields.io/github/last-commit/Level/compose)](https://github.com/Level/compose) [![Contributors](https://img.shields.io/github/contributors/Level/compose?color=brightgreen)](https://github.com/Level/compose/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-write-stream)](https://www.npmjs.com/package/level-write-stream) [![npm downloads](https://img.shields.io/npm/dw/level-write-stream)](https://www.npmjs.com/package/level-write-stream) [![License](https://img.shields.io/npm/l/level-write-stream?color=blue)](https://www.npmjs.com/package/level-write-stream) [![Last commit](https://img.shields.io/github/last-commit/Raynos/level-write-stream)](https://github.com/Raynos/level-write-stream) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-write-stream?color=blue)](https://github.com/Raynos/level-write-stream/graphs/contributors)
-Compose a database factory from [`abstract-leveldown`][abstract-leveldown] and [`levelup`][levelup] layers.
+Streams1 writable stream for [`levelup`][levelup] or [`abstract-leveldown`][abstract-leveldown].
-### [`level-exists`][level-exists]
+### [`level-livefeed`][level-livefeed]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-exists)](https://github.com/juliangruber/level-exists) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-exists?color=brightgreen)](https://github.com/juliangruber/level-exists/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-livefeed)](https://www.npmjs.com/package/level-livefeed) [![npm downloads](https://img.shields.io/npm/dw/level-livefeed)](https://www.npmjs.com/package/level-livefeed) [![License](https://img.shields.io/npm/l/level-livefeed?color=blue)](https://www.npmjs.com/package/level-livefeed) [![Last commit](https://img.shields.io/github/last-commit/Raynos/level-livefeed)](https://github.com/Raynos/level-livefeed) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-livefeed?color=blue)](https://github.com/Raynos/level-livefeed/graphs/contributors)
-Check if a datum exists without reading its value.
+A live query of a range in [`levelup`][levelup]. Similar to [`level-live-stream`][level-live-stream] but with a streams2 interface.
-### [`level-move`][level-move]
+### [`level-range`][level-range]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-move)](https://github.com/juliangruber/level-move) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-move?color=brightgreen)](https://github.com/juliangruber/level-move/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-range)](https://www.npmjs.com/package/level-range) [![npm downloads](https://img.shields.io/npm/dw/level-range)](https://www.npmjs.com/package/level-range) [![License](https://img.shields.io/npm/l/level-range?color=blue)](https://www.npmjs.com/package/level-range) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-range)](https://github.com/juliangruber/level-range) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-range?color=blue)](https://github.com/juliangruber/level-range/graphs/contributors)
-Move a value to another key.
+Find all K/V-pairs prefixed by a certain key. Streams1.
-### [`level-capped`][level-capped]
+### [`level-cursor`][level-cursor]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-capped)](https://github.com/juliangruber/level-capped) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-capped?color=brightgreen)](https://github.com/juliangruber/level-capped/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-cursor)](https://www.npmjs.com/package/level-cursor) [![npm downloads](https://img.shields.io/npm/dw/level-cursor)](https://www.npmjs.com/package/level-cursor) [![License](https://img.shields.io/npm/l/level-cursor?color=blue)](https://www.npmjs.com/package/level-cursor) [![Last commit](https://img.shields.io/github/last-commit/kordon/cursor)](https://github.com/kordon/cursor) [![Contributors](https://img.shields.io/github/contributors/kordon/cursor?color=blue)](https://github.com/kordon/cursor/graphs/contributors)
-Capped collections.
+A stream "cursor" to iterate through a ReadStream / KeyStream / ValueStream.
-### [`level-create`][level-create]
+### [`level-live`][level-live]
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-create)](https://github.com/substack/level-create) [![Contributors](https://img.shields.io/github/contributors/substack/level-create?color=brightgreen)](https://github.com/substack/level-create/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-live)](https://www.npmjs.com/package/level-live) [![npm downloads](https://img.shields.io/npm/dw/level-live)](https://www.npmjs.com/package/level-live) [![License](https://img.shields.io/npm/l/level-live?color=blue)](https://www.npmjs.com/package/level-live) [![Last commit](https://img.shields.io/github/last-commit/voltraco/level-live)](https://github.com/voltraco/level-live) [![Contributors](https://img.shields.io/github/contributors/voltraco/level-live?color=blue)](https://github.com/voltraco/level-live/graphs/contributors)
-Insert a key if and only if it doesn't already exist
+Simple, light and correct live read stream implementation. NB. Uses an undefined streams version, as well as [`ltgt`][ltgt] which is not compatible with [`abstract-level`][abstract-level].
-### [`level-create-batch`][level-create-batch]
+### [`level-glob`][level-glob]
-[![Last commit](https://img.shields.io/github/last-commit/substack/level-create-batch)](https://github.com/substack/level-create-batch) [![Contributors](https://img.shields.io/github/contributors/substack/level-create-batch?color=brightgreen)](https://github.com/substack/level-create-batch/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-glob)](https://www.npmjs.com/package/level-glob) [![npm downloads](https://img.shields.io/npm/dw/level-glob)](https://www.npmjs.com/package/level-glob) [![License](https://img.shields.io/npm/l/level-glob?color=blue)](https://www.npmjs.com/package/level-glob) [![Last commit](https://img.shields.io/github/last-commit/vweevers/level-glob)](https://github.com/vweevers/level-glob) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-glob?color=blue)](https://github.com/vweevers/level-glob/graphs/contributors)
-Insert a batch of keys if and only if none of the keys already exist
+A streams2 read stream filtered and ordered by glob patterns. Keys in the database should be unix-like paths.
-### [`level-modify`][level-modify]
+### [`pull-level`][pull-level]
-[![Last commit](https://img.shields.io/github/last-commit/dskrepps/level-modify)](https://github.com/dskrepps/level-modify) [![Contributors](https://img.shields.io/github/contributors/dskrepps/level-modify?color=brightgreen)](https://github.com/dskrepps/level-modify/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/pull-level)](https://www.npmjs.com/package/pull-level) [![npm downloads](https://img.shields.io/npm/dw/pull-level)](https://www.npmjs.com/package/pull-level) [![License](https://img.shields.io/npm/l/pull-level?color=blue)](https://www.npmjs.com/package/pull-level) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/pull-level)](https://github.com/dominictarr/pull-level) [![Contributors](https://img.shields.io/github/contributors/dominictarr/pull-level?color=blue)](https://github.com/dominictarr/pull-level/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].
+[`pull-stream`](https://github.com/pull-stream/pull-stream) interface to [`levelup`][levelup] with read streams, write streams and realtime (tail/live) reads. Not compatible with [`abstract-level`][abstract-level].
-### [`level-random`][level-random]
+### [`level-live-stream`][level-live-stream]
-[![Last commit](https://img.shields.io/github/last-commit/michaelnisi/level-random)](https://github.com/michaelnisi/level-random) [![Contributors](https://img.shields.io/github/contributors/michaelnisi/level-random?color=brightgreen)](https://github.com/michaelnisi/level-random/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-live-stream)](https://www.npmjs.com/package/level-live-stream) [![npm downloads](https://img.shields.io/npm/dw/level-live-stream)](https://www.npmjs.com/package/level-live-stream) [![License](https://img.shields.io/npm/l/level-live-stream?color=blue)](https://www.npmjs.com/package/level-live-stream) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-live-stream)](https://github.com/dominictarr/level-live-stream) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-live-stream?color=blue)](https://github.com/dominictarr/level-live-stream/graphs/contributors)
-Read values of random [`levelup`][levelup] keys.
+Like `db.createReadStream()` except it's live / tailable. i.e. instead of ending, it will stay open and stream changes to the database as they are inserted. Not compatible with [`abstract-level`][abstract-level].
-### [`level-shared-batch`][level-shared-batch]
+### [`level-concat-iterator`][level-concat-iterator]
-[![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-shared-batch)](https://github.com/juliangruber/level-shared-batch) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-shared-batch?color=brightgreen)](https://github.com/juliangruber/level-shared-batch/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-concat-iterator)](https://www.npmjs.com/package/level-concat-iterator) [![npm downloads](https://img.shields.io/npm/dw/level-concat-iterator)](https://www.npmjs.com/package/level-concat-iterator) [![License](https://img.shields.io/npm/l/level-concat-iterator?color=blue)](https://www.npmjs.com/package/level-concat-iterator) [![Last commit](https://img.shields.io/github/last-commit/Level/concat-iterator)](https://github.com/Level/concat-iterator) [![Contributors](https://img.shields.io/github/contributors/Level/concat-iterator?color=blue)](https://github.com/Level/concat-iterator/graphs/contributors)
-Share batches and commit collectively
+Concatenate items from an [`abstract-leveldown`][abstract-leveldown] iterator into an array. On [`abstract-level`][abstract-level] databases, this is superseded by `iterator.all()`.
-### [`batchlevel`][batchlevel]
+### [`subleveldown`][subleveldown]
-[![Last commit](https://img.shields.io/github/last-commit/biobricks/batchlevel)](https://github.com/biobricks/batchlevel) [![Contributors](https://img.shields.io/github/contributors/biobricks/batchlevel?color=brightgreen)](https://github.com/biobricks/batchlevel/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/subleveldown)](https://www.npmjs.com/package/subleveldown) [![npm downloads](https://img.shields.io/npm/dw/subleveldown)](https://www.npmjs.com/package/subleveldown) [![License](https://img.shields.io/npm/l/subleveldown?color=blue)](https://www.npmjs.com/package/subleveldown) [![Last commit](https://img.shields.io/github/last-commit/Level/subleveldown)](https://github.com/Level/subleveldown) [![Contributors](https://img.shields.io/github/contributors/Level/subleveldown?color=blue)](https://github.com/Level/subleveldown/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-7.2-inactive.svg) ![levelup](https://img.shields.io/badge/levelup-5.1-inactive.svg)
-Batch all operations made on a [`levelup`][levelup] instance. Compatible with [`subleveldown`][subleveldown].
+Split a [`levelup`][levelup] database into sublevels with their own keyspace, encoding and events. Superseded by [`abstract-level`][abstract-level].
-### [`ltest`][ltest]
+### [`level-temp`][level-temp]
-[![Last commit](https://img.shields.io/github/last-commit/ralphtheninja/ltest)](https://github.com/ralphtheninja/ltest) [![Contributors](https://img.shields.io/github/contributors/ralphtheninja/ltest?color=brightgreen)](https://github.com/ralphtheninja/ltest/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-temp)](https://www.npmjs.com/package/level-temp) [![npm downloads](https://img.shields.io/npm/dw/level-temp)](https://www.npmjs.com/package/level-temp) [![License](https://img.shields.io/npm/l/level-temp?color=blue)](https://www.npmjs.com/package/level-temp) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-temp)](https://github.com/mafintosh/level-temp) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-temp?color=blue)](https://github.com/mafintosh/level-temp/graphs/contributors)
-Test function for [`levelup`][levelup] testing, based on [`level-test`][level-test].
+Create a temporary [`subleveldown`][subleveldown] sublevel that is guaranteed to be empty.
-### [`level-probe`][level-probe]
+### [`level-mount`][level-mount]
-[![Last commit](https://img.shields.io/github/last-commit/vweevers/level-probe)](https://github.com/vweevers/level-probe) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-probe?color=brightgreen)](https://github.com/vweevers/level-probe/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-mount)](https://www.npmjs.com/package/level-mount) [![npm downloads](https://img.shields.io/npm/dw/level-mount)](https://www.npmjs.com/package/level-mount) [![License](https://img.shields.io/npm/l/level-mount?color=blue)](https://www.npmjs.com/package/level-mount) [![Last commit](https://img.shields.io/github/last-commit/u8sand/level-mount)](https://github.com/u8sand/level-mount) [![Contributors](https://img.shields.io/github/contributors/u8sand/level-mount?color=blue)](https://github.com/u8sand/level-mount/graphs/contributors) ![abstract-leveldown](https://img.shields.io/badge/abstract--leveldown-6.0-inactive.svg)
-Get the first record in a range, using an iterator or stream. NB. Not compatible with latest [`levelup`][levelup].
+Mount multiple [`abstract-leveldown`][abstract-leveldown] stores by key prefix onto a single store. Can be used with [`subleveldown`][subleveldown].
-### [`autolevel`][autolevel]
+### [`bytespace`][bytespace]
-[![Last commit](https://img.shields.io/github/last-commit/finwo/autolevel)](https://github.com/finwo/autolevel) [![Contributors](https://img.shields.io/github/contributors/finwo/autolevel?color=brightgreen)](https://github.com/finwo/autolevel/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/bytespace)](https://www.npmjs.com/package/bytespace) [![npm downloads](https://img.shields.io/npm/dw/bytespace)](https://www.npmjs.com/package/bytespace) [![License](https://img.shields.io/npm/l/bytespace?color=blue)](https://www.npmjs.com/package/bytespace) [![Last commit](https://img.shields.io/github/last-commit/deanlandolt/bytespace)](https://github.com/deanlandolt/bytespace) [![Contributors](https://img.shields.io/github/contributors/deanlandolt/bytespace?color=blue)](https://github.com/deanlandolt/bytespace/graphs/contributors)
-Automatically combine [`levelup`][levelup] with the right [`abstract-leveldown`][abstract-leveldown] store for your configuration.
+Keypath subspaces prefixed with [`bytewise`][bytewise] tuples. Similar to [`level-sublevel`][level-sublevel]. NB. [`bytewise`][bytewise] - and thus [`bytespace`][bytespace] - can be slow. Consider using the [`charwise`][charwise] encoding instead.
-### [`level-lazy-open`][level-lazy-open]
+### [`level-sublevel`][level-sublevel]
-[![Last commit](https://img.shields.io/github/last-commit/Level/lazy-open)](https://github.com/Level/lazy-open) [![Contributors](https://img.shields.io/github/contributors/Level/lazy-open?color=brightgreen)](https://github.com/Level/lazy-open/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-sublevel)](https://www.npmjs.com/package/level-sublevel) [![npm downloads](https://img.shields.io/npm/dw/level-sublevel)](https://www.npmjs.com/package/level-sublevel) [![License](https://img.shields.io/npm/l/level-sublevel?color=blue)](https://www.npmjs.com/package/level-sublevel) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-sublevel)](https://github.com/dominictarr/level-sublevel) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-sublevel?color=blue)](https://github.com/dominictarr/level-sublevel/graphs/contributors) ![levelup](https://img.shields.io/badge/levelup-0.19-inactive.svg)
-Lazily open a leveldown compatible backend.
+Adds the ability to create subsections with the same API as [`levelup`][levelup], but only write/read to a prefixed section, or bucket, of the key-space. Each section also has [`level-hooks`][level-hooks] installed. NB. No longer maintained. Instead use [`subleveldown`][subleveldown] for [`levelup`][levelup], or the built-in sublevels of [`abstract-level`][abstract-level].
-### [`changeset`][changeset]
+### [`sublevel-prefixer`][sublevel-prefixer]
-[![Last commit](https://img.shields.io/github/last-commit/eugeneware/changeset)](https://github.com/eugeneware/changeset) [![Contributors](https://img.shields.io/github/contributors/eugeneware/changeset?color=brightgreen)](https://github.com/eugeneware/changeset/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/sublevel-prefixer)](https://www.npmjs.com/package/sublevel-prefixer) [![npm downloads](https://img.shields.io/npm/dw/sublevel-prefixer)](https://www.npmjs.com/package/sublevel-prefixer) [![License](https://img.shields.io/npm/l/sublevel-prefixer?color=blue)](https://www.npmjs.com/package/sublevel-prefixer) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/sublevel-prefixer)](https://github.com/mafintosh/sublevel-prefixer) [![Contributors](https://img.shields.io/github/contributors/mafintosh/sublevel-prefixer?color=blue)](https://github.com/mafintosh/sublevel-prefixer/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.
+Utility to prefix a key with a sublevel prefix.
-### [`levelup-defaults`][levelup-defaults]
+### [`level-sublevel-stream`][level-sublevel-stream]
-[![Last commit](https://img.shields.io/github/last-commit/mafintosh/levelup-defaults)](https://github.com/mafintosh/levelup-defaults) [![Contributors](https://img.shields.io/github/contributors/mafintosh/levelup-defaults?color=brightgreen)](https://github.com/mafintosh/levelup-defaults/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-sublevel-stream)](https://www.npmjs.com/package/level-sublevel-stream) [![npm downloads](https://img.shields.io/npm/dw/level-sublevel-stream)](https://www.npmjs.com/package/level-sublevel-stream) [![License](https://img.shields.io/npm/l/level-sublevel-stream?color=blue)](https://www.npmjs.com/package/level-sublevel-stream) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sublevel-stream)](https://github.com/juliangruber/level-sublevel-stream) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sublevel-stream?color=blue)](https://github.com/juliangruber/level-sublevel-stream/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.
+Find [`level-sublevel`][level-sublevel] sublevels, not requiring them to be in memory already.
-### [`level-methods`][level-methods]
+### [`level-subtree`][level-subtree]
-[![Last commit](https://img.shields.io/github/last-commit/Wayla/level-methods)](https://github.com/Wayla/level-methods) [![Contributors](https://img.shields.io/github/contributors/Wayla/level-methods?color=brightgreen)](https://github.com/Wayla/level-methods/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-subtree)](https://www.npmjs.com/package/level-subtree) [![npm downloads](https://img.shields.io/npm/dw/level-subtree)](https://www.npmjs.com/package/level-subtree) [![License](https://img.shields.io/npm/l/level-subtree?color=blue)](https://www.npmjs.com/package/level-subtree) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-subtree)](https://github.com/hij1nx/level-subtree) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-subtree?color=blue)](https://github.com/hij1nx/level-subtree/graphs/contributors)
-Useful meta information about [`levelup`][levelup] methods.
+Generate a tree from [`level-sublevel`][level-sublevel] sublevels, useful when there is no manifest.
-## Replication
+### [`level-superlevel`][level-superlevel]
-### [`level-2pc`][level-2pc]
+[![npm package version](https://img.shields.io/npm/v/level-superlevel)](https://www.npmjs.com/package/level-superlevel) [![npm downloads](https://img.shields.io/npm/dw/level-superlevel)](https://www.npmjs.com/package/level-superlevel) [![License](https://img.shields.io/npm/l/level-superlevel?color=blue)](https://www.npmjs.com/package/level-superlevel) [![Last commit](https://img.shields.io/github/last-commit/randymized/level-superlevel)](https://github.com/randymized/level-superlevel) [![Contributors](https://img.shields.io/github/contributors/randymized/level-superlevel?color=blue)](https://github.com/randymized/level-superlevel/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-2pc)](https://github.com/hij1nx/level-2pc) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-2pc?color=brightgreen)](https://github.com/hij1nx/level-2pc/graphs/contributors)
+Superlevel adds a "super" level that allows accessing the entire database, discovering [`level-sublevel`][level-sublevel] sublevels and browsing the database without knowledge of the sublevel structure.
-A two-phase commit protocol.
+### [`level-subkey`][level-subkey]
-### [`level-couch-sync`][level-couch-sync]
+[![npm package version](https://img.shields.io/npm/v/level-subkey)](https://www.npmjs.com/package/level-subkey) [![npm downloads](https://img.shields.io/npm/dw/level-subkey)](https://www.npmjs.com/package/level-subkey) [![License](https://img.shields.io/npm/l/level-subkey?color=blue)](https://www.npmjs.com/package/level-subkey) [![Last commit](https://img.shields.io/github/last-commit/snowyu/level-subkey)](https://github.com/snowyu/level-subkey) [![Contributors](https://img.shields.io/github/contributors/snowyu/level-subkey?color=blue)](https://github.com/snowyu/level-subkey/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-couch-sync)](https://github.com/dominictarr/level-couch-sync) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-couch-sync?color=brightgreen)](https://github.com/dominictarr/level-couch-sync/graphs/contributors)
+Use path-like keys to separate sections of [`levelup`][levelup], with hooks. Adapted from [`level-sublevel`][level-sublevel].
-Replicate from CouchDB to LevelDB.
+### [`level-mirror`][level-mirror]
-### [`level-master`][level-master]
+[![npm package version](https://img.shields.io/npm/v/level-mirror)](https://www.npmjs.com/package/level-mirror) [![npm downloads](https://img.shields.io/npm/dw/level-mirror)](https://www.npmjs.com/package/level-mirror) [![License](https://img.shields.io/npm/l/level-mirror?color=blue)](https://www.npmjs.com/package/level-mirror) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-mirror)](https://github.com/juliangruber/level-mirror) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-mirror?color=blue)](https://github.com/juliangruber/level-mirror/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-master)](https://github.com/dominictarr/level-master) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-master?color=brightgreen)](https://github.com/dominictarr/level-master/graphs/contributors)
+Mirror and optionally transform data from one [`level-sublevel`][level-sublevel] sublevel into another.
-Master-Slave replication for [`levelup`][levelup].
+### [`couchup`][couchup]
-### [`level-merkle`][level-merkle]
+[![npm package version](https://img.shields.io/npm/v/couchup)](https://www.npmjs.com/package/couchup) [![npm downloads](https://img.shields.io/npm/dw/couchup)](https://www.npmjs.com/package/couchup) [![License](https://img.shields.io/npm/l/couchup?color=blue)](https://www.npmjs.com/package/couchup) [![Last commit](https://img.shields.io/github/last-commit/mikeal/couchup)](https://github.com/mikeal/couchup) [![Contributors](https://img.shields.io/github/contributors/mikeal/couchup?color=blue)](https://github.com/mikeal/couchup/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-merkle)](https://github.com/dominictarr/level-merkle) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-merkle?color=brightgreen)](https://github.com/dominictarr/level-merkle/graphs/contributors)
+A CouchDB implementation on top of [`levelup`][levelup].
-Uses [merkle-trees](http://en.wikipedia.org/wiki/Merkle_tree) to replicate data sets. Data must be sets and currently, deletes are not supported.
+### [`firedup`][firedup]
-### [`level-replicate`][level-replicate]
+[![npm package version](https://img.shields.io/npm/v/firedup)](https://www.npmjs.com/package/firedup) [![npm downloads](https://img.shields.io/npm/dw/firedup)](https://www.npmjs.com/package/firedup) [![License](https://img.shields.io/npm/l/firedup?color=blue)](https://www.npmjs.com/package/firedup) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/firedup)](https://github.com/eugeneware/firedup) [![Contributors](https://img.shields.io/github/contributors/eugeneware/firedup?color=blue)](https://github.com/eugeneware/firedup/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-replicate)](https://github.com/dominictarr/level-replicate) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-replicate?color=brightgreen)](https://github.com/dominictarr/level-replicate/graphs/contributors)
+A node.js implementation of firebase based on [`levelup`][levelup].
-Master-master replication with [`levelup`][levelup]. Implements scuttlebutt style handshake, syncs data, then replicates real time changes.
+### [`len`][len]
-### [`level-replicator`][level-replicator]
+[![npm package version](https://img.shields.io/npm/v/len)](https://www.npmjs.com/package/len) [![npm downloads](https://img.shields.io/npm/dw/len)](https://www.npmjs.com/package/len) [![License](https://img.shields.io/npm/l/len?color=blue)](https://www.npmjs.com/package/len) [![Last commit](https://img.shields.io/github/last-commit/binocarlos/len)](https://github.com/binocarlos/len) [![Contributors](https://img.shields.io/github/contributors/binocarlos/len?color=blue)](https://github.com/binocarlos/len/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-replicator)](https://github.com/hij1nx/level-replicator) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-replicator?color=brightgreen)](https://github.com/hij1nx/level-replicator/graphs/contributors)
+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'.
-Master-master replication. Same goal as [`level-replicate`][level-replicate] but different approach.
+### [`lem`][lem]
-## Tools
+[![npm package version](https://img.shields.io/npm/v/lem)](https://www.npmjs.com/package/lem) [![npm downloads](https://img.shields.io/npm/dw/lem)](https://www.npmjs.com/package/lem) [![License](https://img.shields.io/npm/l/lem?color=blue)](https://www.npmjs.com/package/lem) [![Last commit](https://img.shields.io/github/last-commit/binocarlos/lem)](https://github.com/binocarlos/lem) [![Contributors](https://img.shields.io/github/contributors/binocarlos/lem?color=blue)](https://github.com/binocarlos/lem/graphs/contributors)
-**CLI, GUI and web interfaces for exploring data.**
+Lem is a telemetry storage database using LevelDB. Keys are indexed by timestamp and you can read values in-between 2 points in time.
-### [`lev2`][lev2]
+### [`pushdb`][pushdb]
-[![Last commit](https://img.shields.io/github/last-commit/maxlath/lev2)](https://github.com/maxlath/lev2) [![Contributors](https://img.shields.io/github/contributors/maxlath/lev2?color=brightgreen)](https://github.com/maxlath/lev2/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/pushdb)](https://www.npmjs.com/package/pushdb) [![npm downloads](https://img.shields.io/npm/dw/pushdb)](https://www.npmjs.com/package/pushdb) [![License](https://img.shields.io/npm/l/pushdb?color=blue)](https://www.npmjs.com/package/pushdb) [![Last commit](https://img.shields.io/github/last-commit/mikeal/pushdb)](https://github.com/mikeal/pushdb) [![Contributors](https://img.shields.io/github/contributors/mikeal/pushdb?color=blue)](https://github.com/mikeal/pushdb/graphs/contributors)
-A complete REPL & CLI for managing LevelDB instances
+A programmable database with document storage and unique indexing capabilities.
-### [`level-in`][level-in]
+### [`tacodb`][tacodb]
-[![Last commit](https://img.shields.io/github/last-commit/fergiemcdowall/level-in)](https://github.com/fergiemcdowall/level-in) [![Contributors](https://img.shields.io/github/contributors/fergiemcdowall/level-in?color=brightgreen)](https://github.com/fergiemcdowall/level-in/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/tacodb)](https://www.npmjs.com/package/tacodb) [![npm downloads](https://img.shields.io/npm/dw/tacodb)](https://www.npmjs.com/package/tacodb) [![License](https://img.shields.io/npm/l/tacodb?color=blue)](https://www.npmjs.com/package/tacodb) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/tacodb)](https://github.com/dominictarr/tacodb) [![Contributors](https://img.shields.io/github/contributors/dominictarr/tacodb?color=blue)](https://github.com/dominictarr/tacodb/graphs/contributors)
-A simple command-line utility for writing data to LevelDB via [`levelup`][levelup].
+A responsive, Node.js-style database ideal for realtime data. Highly modular and adaptable, allowing extension with the [Level][level-org] ecosystem.
-### [`level-out`][level-out]
+### [`timestreamdb`][timestreamdb]
-[![Last commit](https://img.shields.io/github/last-commit/fergiemcdowall/level-out)](https://github.com/fergiemcdowall/level-out) [![Contributors](https://img.shields.io/github/contributors/fergiemcdowall/level-out?color=brightgreen)](https://github.com/fergiemcdowall/level-out/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/timestreamdb)](https://www.npmjs.com/package/timestreamdb) [![npm downloads](https://img.shields.io/npm/dw/timestreamdb)](https://www.npmjs.com/package/timestreamdb) [![License](https://img.shields.io/npm/l/timestreamdb?color=blue)](https://www.npmjs.com/package/timestreamdb) [![Last commit](https://img.shields.io/github/last-commit/brycebaril/timestreamdb)](https://github.com/brycebaril/timestreamdb) [![Contributors](https://img.shields.io/github/contributors/brycebaril/timestreamdb?color=blue)](https://github.com/brycebaril/timestreamdb/graphs/contributors)
-A simple command-line utility for reading LevelDB data via [`levelup`][levelup].
+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.
-### [`level-key-list`][level-key-list]
+### [`level-orm`][level-orm]
-[![Last commit](https://img.shields.io/github/last-commit/hughsk/level-key-list)](https://github.com/hughsk/level-key-list) [![Contributors](https://img.shields.io/github/contributors/hughsk/level-key-list?color=brightgreen)](https://github.com/hughsk/level-key-list/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-orm)](https://www.npmjs.com/package/level-orm) [![npm downloads](https://img.shields.io/npm/dw/level-orm)](https://www.npmjs.com/package/level-orm) [![License](https://img.shields.io/npm/l/level-orm?color=blue)](https://www.npmjs.com/package/level-orm) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-orm)](https://github.com/eugeneware/level-orm) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-orm?color=blue)](https://github.com/eugeneware/level-orm/graphs/contributors)
-Command-line tool for quickly printing a list of keys in a LevelDB database.
+Simple ORM built on [`levelup`][levelup].
-### [`lev`][lev]
+### [`level-restful`][level-restful]
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/lev)](https://github.com/hij1nx/lev) [![Contributors](https://img.shields.io/github/contributors/hij1nx/lev?color=brightgreen)](https://github.com/hij1nx/lev/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-restful)](https://www.npmjs.com/package/level-restful) [![npm downloads](https://img.shields.io/npm/dw/level-restful)](https://www.npmjs.com/package/level-restful) [![License](https://img.shields.io/npm/l/level-restful?color=blue)](https://www.npmjs.com/package/level-restful) [![Last commit](https://img.shields.io/github/last-commit/karissa/level-restful)](https://github.com/karissa/level-restful) [![Contributors](https://img.shields.io/github/contributors/karissa/level-restful?color=blue)](https://github.com/karissa/level-restful/graphs/contributors)
-A CLI REPL interface for LevelDB.
+REST wrapper for [`levelup`][levelup], as an extension to [`level-orm`][level-orm].
-### [`leveldb-repl`][leveldb-repl]
+### [`level-rest`][level-rest]
-[![Last commit](https://img.shields.io/github/last-commit/lapwinglabs/leveldb-repl)](https://github.com/lapwinglabs/leveldb-repl) [![Contributors](https://img.shields.io/github/contributors/lapwinglabs/leveldb-repl?color=brightgreen)](https://github.com/lapwinglabs/leveldb-repl/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-rest)](https://www.npmjs.com/package/level-rest) [![npm downloads](https://img.shields.io/npm/dw/level-rest)](https://www.npmjs.com/package/level-rest) [![License](https://img.shields.io/npm/l/level-rest?color=blue)](https://www.npmjs.com/package/level-rest) [![Last commit](https://img.shields.io/github/last-commit/shama/level-rest)](https://github.com/shama/level-rest) [![Contributors](https://img.shields.io/github/contributors/shama/level-rest?color=blue)](https://github.com/shama/level-rest/graphs/contributors)
-Super simple REPL for LevelDB. Supports filter globbing.
+REST wrapper for [`levelup`][levelup]. Not compatible with latest [`levelup`][levelup].
-### [`levelhud`][levelhud]
+### [`level-lively`][level-lively]
-[![Last commit](https://img.shields.io/github/last-commit/ricardobeat/levelhud)](https://github.com/ricardobeat/levelhud) [![Contributors](https://img.shields.io/github/contributors/ricardobeat/levelhud?color=brightgreen)](https://github.com/ricardobeat/levelhud/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-lively)](https://www.npmjs.com/package/level-lively) [![npm downloads](https://img.shields.io/npm/dw/level-lively)](https://www.npmjs.com/package/level-lively) [![License](https://img.shields.io/npm/l/level-lively?color=blue)](https://www.npmjs.com/package/level-lively) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-lively)](https://github.com/eugeneware/level-lively) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-lively?color=blue)](https://github.com/eugeneware/level-lively/graphs/contributors)
-LevelDB GUI with an interactive console.
+[`levelup`][levelup] implementation of [LivelyDb](https://github.com/eugeneware/livelydb) for doing real-time data binding of a database with local javascript objects.
-### [`levelweb`][levelweb]
+### [`level-mongo`][level-mongo]
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/levelui)](https://github.com/hij1nx/levelui) [![Contributors](https://img.shields.io/github/contributors/hij1nx/levelui?color=brightgreen)](https://github.com/hij1nx/levelui/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-mongo)](https://www.npmjs.com/package/level-mongo) [![npm downloads](https://img.shields.io/npm/dw/level-mongo)](https://www.npmjs.com/package/level-mongo) [![License](https://img.shields.io/npm/l/level-mongo?color=blue)](https://www.npmjs.com/package/level-mongo) [![Last commit](https://img.shields.io/github/last-commit/simon-p-r/level-mongo)](https://github.com/simon-p-r/level-mongo) [![Contributors](https://img.shields.io/github/contributors/simon-p-r/level-mongo?color=blue)](https://github.com/simon-p-r/level-mongo/graphs/contributors) ![leveldown](https://img.shields.io/badge/leveldown-3.0-red.svg)
-A LevelDB GUI. Includes simple data visualization tools.
+MongoDB-like database backed by LevelDB.
-### [`level-cli`][level-cli]
+### [`levi`][levi]
-[![Last commit](https://img.shields.io/github/last-commit/mablay/level-cli)](https://github.com/mablay/level-cli) [![Contributors](https://img.shields.io/github/contributors/mablay/level-cli?color=brightgreen)](https://github.com/mablay/level-cli/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/levi)](https://www.npmjs.com/package/levi) [![npm downloads](https://img.shields.io/npm/dw/levi)](https://www.npmjs.com/package/levi) [![License](https://img.shields.io/npm/l/levi?color=blue)](https://www.npmjs.com/package/levi) [![Last commit](https://img.shields.io/github/last-commit/cshum/levi)](https://github.com/cshum/levi) [![Contributors](https://img.shields.io/github/contributors/cshum/levi?color=blue)](https://github.com/cshum/levi/graphs/contributors)
-Interact with LevelDB on the command line.
+Stream based full-text search for Node.js and browser using [`levelup`][levelup].
-### [`level-explore`][level-explore]
+### [`dulcimer`][dulcimer]
-[![Last commit](https://img.shields.io/github/last-commit/jcblw/level-explore)](https://github.com/jcblw/level-explore) [![Contributors](https://img.shields.io/github/contributors/jcblw/level-explore?color=brightgreen)](https://github.com/jcblw/level-explore/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/dulcimer)](https://www.npmjs.com/package/dulcimer) [![npm downloads](https://img.shields.io/npm/dw/dulcimer)](https://www.npmjs.com/package/dulcimer) [![License](https://img.shields.io/npm/l/dulcimer?color=blue)](https://www.npmjs.com/package/dulcimer) [![Last commit](https://img.shields.io/github/last-commit/fritzy/dulcimer)](https://github.com/fritzy/dulcimer) [![Contributors](https://img.shields.io/github/contributors/fritzy/dulcimer?color=blue)](https://github.com/fritzy/dulcimer/graphs/contributors)
-A terminal program to visualize LevelDB data. Early stages.
+Define JSON models and manage indexes, children, foreign keys and much more.
-### [`level-repair`][level-repair]
+### [`level-fact-base`][level-fact-base]
-[![Last commit](https://img.shields.io/github/last-commit/kesla/level-repair)](https://github.com/kesla/level-repair) [![Contributors](https://img.shields.io/github/contributors/kesla/level-repair?color=brightgreen)](https://github.com/kesla/level-repair/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-fact-base)](https://www.npmjs.com/package/level-fact-base) [![npm downloads](https://img.shields.io/npm/dw/level-fact-base)](https://www.npmjs.com/package/level-fact-base) [![License](https://img.shields.io/npm/l/level-fact-base?color=blue)](https://www.npmjs.com/package/level-fact-base) [![Last commit](https://img.shields.io/github/last-commit/smallhelm/level-fact-base)](https://github.com/smallhelm/level-fact-base) [![Contributors](https://img.shields.io/github/contributors/smallhelm/level-fact-base?color=blue)](https://github.com/smallhelm/level-fact-base/graphs/contributors)
-CLI tool to repair a LevelDB.
+Store immutable facts and query them with datalog.
-### [`leveldb-editor`][leveldb-editor]
+### [`ltgt`][ltgt]
-[![Last commit](https://img.shields.io/github/last-commit/derhuerst/leveldb-editor)](https://github.com/derhuerst/leveldb-editor) [![Contributors](https://img.shields.io/github/contributors/derhuerst/leveldb-editor?color=brightgreen)](https://github.com/derhuerst/leveldb-editor/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/ltgt)](https://www.npmjs.com/package/ltgt) [![npm downloads](https://img.shields.io/npm/dw/ltgt)](https://www.npmjs.com/package/ltgt) [![License](https://img.shields.io/npm/l/ltgt?color=blue)](https://www.npmjs.com/package/ltgt) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/ltgt)](https://github.com/dominictarr/ltgt) [![Contributors](https://img.shields.io/github/contributors/dominictarr/ltgt?color=blue)](https://github.com/dominictarr/ltgt/graphs/contributors)
-Edit a LevelDB from the command line.
+Tool belt to find lower or upper bounds, compare and filter keys and more. Incompatible with [`abstract-level`][abstract-level], because in [`abstract-level`][abstract-level] `gte` and `lte` range options take precedence over `gt` and `lt` respectively.
-### [`levelscan`][levelscan]
+### [`level-option-wrap`][level-option-wrap]
-[![Last commit](https://img.shields.io/github/last-commit/joeledwards/node-levelscan)](https://github.com/joeledwards/node-levelscan) [![Contributors](https://img.shields.io/github/contributors/joeledwards/node-levelscan?color=brightgreen)](https://github.com/joeledwards/node-levelscan/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/level-option-wrap)](https://www.npmjs.com/package/level-option-wrap) [![npm downloads](https://img.shields.io/npm/dw/level-option-wrap)](https://www.npmjs.com/package/level-option-wrap) [![License](https://img.shields.io/npm/l/level-option-wrap?color=blue)](https://www.npmjs.com/package/level-option-wrap) [![Last commit](https://img.shields.io/github/last-commit/substack/level-option-wrap)](https://github.com/substack/level-option-wrap) [![Contributors](https://img.shields.io/github/contributors/substack/level-option-wrap?color=blue)](https://github.com/substack/level-option-wrap/graphs/contributors)
-LevelDB command line scanning utility
+Wrap `ltgt` options with functions. Expose range options without leaking information about your internal key representations.
-### [`levelui`][levelui]
+### [`interval-to-ltgt`][interval-to-ltgt]
-[![Last commit](https://img.shields.io/github/last-commit/hij1nx/levelui)](https://github.com/hij1nx/levelui) [![Contributors](https://img.shields.io/github/contributors/hij1nx/levelui?color=brightgreen)](https://github.com/hij1nx/levelui/graphs/contributors)
+[![npm package version](https://img.shields.io/npm/v/interval-to-ltgt)](https://www.npmjs.com/package/interval-to-ltgt) [![npm downloads](https://img.shields.io/npm/dw/interval-to-ltgt)](https://www.npmjs.com/package/interval-to-ltgt) [![License](https://img.shields.io/npm/l/interval-to-ltgt?color=blue)](https://www.npmjs.com/package/interval-to-ltgt) [![Last commit](https://img.shields.io/github/last-commit/nowsecure/interval-to-ltgt)](https://github.com/nowsecure/interval-to-ltgt) [![Contributors](https://img.shields.io/github/contributors/nowsecure/interval-to-ltgt?color=blue)](https://github.com/nowsecure/interval-to-ltgt/graphs/contributors)
-A LevelDB GUI based on [`atom-shell`](https://github.com/atom/atom-shell) (now called Electron).
+Convert an interval string to an `ltgt` object. This is the counterpart to [`ltgt-to-interval`][ltgt-to-interval].
-## Benchmarking & Debugging
+### [`ltgt-to-interval`][ltgt-to-interval]
-### [`level-bench`][level-bench]
+[![npm package version](https://img.shields.io/npm/v/ltgt-to-interval)](https://www.npmjs.com/package/ltgt-to-interval) [![npm downloads](https://img.shields.io/npm/dw/ltgt-to-interval)](https://www.npmjs.com/package/ltgt-to-interval) [![License](https://img.shields.io/npm/l/ltgt-to-interval?color=blue)](https://www.npmjs.com/package/ltgt-to-interval) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/ltgt-to-interval)](https://github.com/juliangruber/ltgt-to-interval) [![Contributors](https://img.shields.io/github/contributors/juliangruber/ltgt-to-interval?color=blue)](https://github.com/juliangruber/ltgt-to-interval/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/Level/bench)](https://github.com/Level/bench) [![Contributors](https://img.shields.io/github/contributors/Level/bench?color=brightgreen)](https://github.com/Level/bench/graphs/contributors)
+Convert an `ltgt` object to an interval string. This is the counterpart to [`interval-to-ltgt`][interval-to-ltgt].
-Benchmark [`abstract-leveldown`][abstract-leveldown] and [`levelup`][levelup] stores.
+### [`range-emitter`][range-emitter]
-### [`level-compare-forks`][level-compare-forks]
+[![npm package version](https://img.shields.io/npm/v/range-emitter)](https://www.npmjs.com/package/range-emitter) [![npm downloads](https://img.shields.io/npm/dw/range-emitter)](https://www.npmjs.com/package/range-emitter) [![License](https://img.shields.io/npm/l/range-emitter?color=blue)](https://www.npmjs.com/package/range-emitter) [![Last commit](https://img.shields.io/github/last-commit/jameskyburz/range-emitter)](https://github.com/jameskyburz/range-emitter) [![Contributors](https://img.shields.io/github/contributors/jameskyburz/range-emitter?color=blue)](https://github.com/jameskyburz/range-emitter/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/kesla/level-compare-forks)](https://github.com/kesla/level-compare-forks) [![Contributors](https://img.shields.io/github/contributors/kesla/level-compare-forks?color=brightgreen)](https://github.com/kesla/level-compare-forks/graphs/contributors)
+Range emitter. Publish keys and subscribe to ranges.
-Run benchmarks on different level-forks and see how they compare.
+### [`level-codec`][level-codec]
-### [`level-log`][level-log]
+[![npm package version](https://img.shields.io/npm/v/level-codec)](https://www.npmjs.com/package/level-codec) [![npm downloads](https://img.shields.io/npm/dw/level-codec)](https://www.npmjs.com/package/level-codec) [![License](https://img.shields.io/npm/l/level-codec?color=blue)](https://www.npmjs.com/package/level-codec) [![Last commit](https://img.shields.io/github/last-commit/Level/codec)](https://github.com/Level/codec) [![Contributors](https://img.shields.io/github/contributors/Level/codec?color=blue)](https://github.com/Level/codec/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/micnews/level-log)](https://github.com/micnews/level-log) [![Contributors](https://img.shields.io/github/contributors/micnews/level-log?color=brightgreen)](https://github.com/micnews/level-log/graphs/contributors)
+Encode keys, values and ltgte options. Used in [`encoding-down`][encoding-down]. Superseded by [`level-transcoder`][level-transcoder].
-Log all [`levelup`][levelup] operations, including method calls.
+### [`level-errors`][level-errors]
-### [`debugdown`][debugdown]
+[![npm package version](https://img.shields.io/npm/v/level-errors)](https://www.npmjs.com/package/level-errors) [![npm downloads](https://img.shields.io/npm/dw/level-errors)](https://www.npmjs.com/package/level-errors) [![License](https://img.shields.io/npm/l/level-errors?color=blue)](https://www.npmjs.com/package/level-errors) [![Last commit](https://img.shields.io/github/last-commit/Level/errors)](https://github.com/Level/errors) [![Contributors](https://img.shields.io/github/contributors/Level/errors?color=blue)](https://github.com/Level/errors/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/vweevers/debugdown)](https://github.com/vweevers/debugdown) [![Contributors](https://img.shields.io/github/contributors/vweevers/debugdown?color=brightgreen)](https://github.com/vweevers/debugdown/graphs/contributors)
+Error types for [`levelup`][levelup]. Superseded by [`abstract-level`][abstract-level].
-Log all operations made on an [`abstract-leveldown`][abstract-leveldown] compliant store. For node and browsers.
+### [`level-packager`][level-packager]
-### [`level-time`][level-time]
+[![npm package version](https://img.shields.io/npm/v/level-packager)](https://www.npmjs.com/package/level-packager) [![npm downloads](https://img.shields.io/npm/dw/level-packager)](https://www.npmjs.com/package/level-packager) [![License](https://img.shields.io/npm/l/level-packager?color=blue)](https://www.npmjs.com/package/level-packager) [![Last commit](https://img.shields.io/github/last-commit/Level/packager)](https://github.com/Level/packager) [![Contributors](https://img.shields.io/github/contributors/Level/packager?color=blue)](https://github.com/Level/packager/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/micnews/level-time)](https://github.com/micnews/level-time) [![Contributors](https://img.shields.io/github/contributors/micnews/level-time?color=brightgreen)](https://github.com/micnews/level-time/graphs/contributors)
+Legacy package helper to bundle an [`abstract-leveldown`][abstract-leveldown] store with [`levelup`][levelup] and [`encoding-down`][encoding-down].
-Log [`levelup`][levelup] operations and their duration.
+### [`multileveldown`][multileveldown]
-### [`level-dump`][level-dump]
+[![npm package version](https://img.shields.io/npm/v/multileveldown)](https://www.npmjs.com/package/multileveldown) [![npm downloads](https://img.shields.io/npm/dw/multileveldown)](https://www.npmjs.com/package/multileveldown) [![License](https://img.shields.io/npm/l/multileveldown?color=blue)](https://www.npmjs.com/package/multileveldown) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/multileveldown)](https://github.com/mafintosh/multileveldown) [![Contributors](https://img.shields.io/github/contributors/mafintosh/multileveldown?color=blue)](https://github.com/mafintosh/multileveldown/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/thlorenz/level-dump)](https://github.com/thlorenz/level-dump) [![Contributors](https://img.shields.io/github/contributors/thlorenz/level-dump?color=brightgreen)](https://github.com/thlorenz/level-dump/graphs/contributors)
+Share a [`levelup`][levelup] instance across multiple processes or over the network. An alternative to [`multilevel`][multilevel], implemented as [`abstract-leveldown`][abstract-leveldown] stores with seamless retry support. Superseded by [`many-level`][many-level].
-Dumps all values and/or keys of a [`levelup`][levelup] or [`level-sublevel`][level-sublevel] instance to the console.
+### [`level-party`][level-party]
-### [`level-benchmarks`][level-benchmarks]
+[![npm package version](https://img.shields.io/npm/v/level-party)](https://www.npmjs.com/package/level-party) [![npm downloads](https://img.shields.io/npm/dw/level-party)](https://www.npmjs.com/package/level-party) [![License](https://img.shields.io/npm/l/level-party?color=blue)](https://www.npmjs.com/package/level-party) [![Last commit](https://img.shields.io/github/last-commit/substack/level-party)](https://github.com/substack/level-party) [![Contributors](https://img.shields.io/github/contributors/substack/level-party?color=blue)](https://github.com/substack/level-party/graphs/contributors)
-[![Last commit](https://img.shields.io/github/last-commit/kesla/level-benchmarks)](https://github.com/kesla/level-benchmarks) [![Contributors](https://img.shields.io/github/contributors/kesla/level-benchmarks?color=brightgreen)](https://github.com/kesla/level-benchmarks/graphs/contributors)
+Open a LevelDB ([`leveldown`][leveldown]) handle multiple times, transparently upgrading to [`multileveldown`][multileveldown] when more than 1 process try to use the same LevelDB data directory at once and re-electing a new master when the primary unix socket (or named pipe) goes down. Superseded by [`rave-level`][rave-level].
-Run benchmarks against levelup-compatible engines
+### [`multilevel`][multilevel]
-## Resources
+[![npm package version](https://img.shields.io/npm/v/multilevel)](https://www.npmjs.com/package/multilevel) [![npm downloads](https://img.shields.io/npm/dw/multilevel)](https://www.npmjs.com/package/multilevel) [![License](https://img.shields.io/npm/l/multilevel?color=blue)](https://www.npmjs.com/package/multilevel) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/multilevel)](https://github.com/juliangruber/multilevel) [![Contributors](https://img.shields.io/github/contributors/juliangruber/multilevel?color=blue)](https://github.com/juliangruber/multilevel/graphs/contributors)
-### [`leveljs.org`][leveljs.org]
+Share a [`levelup`][levelup] instance over the network.
-Website for [Level][level-org]
+### [`multilevel-http`][multilevel-http]
-### [`level-community`][level-community]
+[![npm package version](https://img.shields.io/npm/v/multilevel-http)](https://www.npmjs.com/package/multilevel-http) [![npm downloads](https://img.shields.io/npm/dw/multilevel-http)](https://www.npmjs.com/package/multilevel-http) [![License](https://img.shields.io/npm/l/multilevel-http?color=blue)](https://www.npmjs.com/package/multilevel-http) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/multilevel-http)](https://github.com/juliangruber/multilevel-http) [![Contributors](https://img.shields.io/github/contributors/juliangruber/multilevel-http?color=blue)](https://github.com/juliangruber/multilevel-http/graphs/contributors)
-General discussion, cross-repo efforts and common information for projects in the community
+Expose a [`levelup`][levelup] instance via HTTP.
-### [`electron-demo`][electron-demo]
+### [`level-manifest`][level-manifest]
-Demo app loading LevelDB into an Electron context.
+[![npm package version](https://img.shields.io/npm/v/level-manifest)](https://www.npmjs.com/package/level-manifest) [![npm downloads](https://img.shields.io/npm/dw/level-manifest)](https://www.npmjs.com/package/level-manifest) [![License](https://img.shields.io/npm/l/level-manifest?color=blue)](https://www.npmjs.com/package/level-manifest) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-manifest)](https://github.com/dominictarr/level-manifest) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-manifest?color=blue)](https://github.com/dominictarr/level-manifest/graphs/contributors)
-### [`browserify-starter`][browserify-starter]
+Describe the functions that [`multilevel`][multilevel] should provide access to on the client.
-Demonstrates bundling [`level`][level] for browsers using [`browserify`](https://github.com/browserify/browserify).
+### [`level-sandbox`][level-sandbox]
-### [`webpack-starter`][webpack-starter]
+[![npm package version](https://img.shields.io/npm/v/level-sandbox)](https://www.npmjs.com/package/level-sandbox) [![npm downloads](https://img.shields.io/npm/dw/level-sandbox)](https://www.npmjs.com/package/level-sandbox) [![License](https://img.shields.io/npm/l/level-sandbox?color=blue)](https://www.npmjs.com/package/level-sandbox) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-sandbox)](https://github.com/juliangruber/level-sandbox) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-sandbox?color=blue)](https://github.com/juliangruber/level-sandbox/graphs/contributors)
-Demonstrates bundling [`level`][level] for browsers using [`webpack`](https://webpack.js.org/).
+A sandbox for hosting [`multilevel`][multilevel] enabled databases.
-### [`level-awesome`][level-awesome]
+### [`level-range-emitter`][level-range-emitter]
-An open list of awesome [Level][level-org] libraries and resources.
+[![npm package version](https://img.shields.io/npm/v/level-range-emitter)](https://www.npmjs.com/package/level-range-emitter) [![npm downloads](https://img.shields.io/npm/dw/level-range-emitter)](https://www.npmjs.com/package/level-range-emitter) [![License](https://img.shields.io/npm/l/level-range-emitter?color=blue)](https://www.npmjs.com/package/level-range-emitter) [![Last commit](https://img.shields.io/github/last-commit/jameskyburz/level-range-emitter)](https://github.com/jameskyburz/level-range-emitter) [![Contributors](https://img.shields.io/github/contributors/jameskyburz/level-range-emitter?color=blue)](https://github.com/jameskyburz/level-range-emitter/graphs/contributors)
-### [`levelmeup`][levelmeup]
+Client and server using [`multileveldown`][multileveldown], [`range-emitter`][range-emitter] and [`ltgt`][ltgt].
-Level Me Up Scotty! An intro to Node.js databases via a set of self-guided workshops.
+### [`leveldb-mount`][leveldb-mount]
-## Applications
+[![npm package version](https://img.shields.io/npm/v/leveldb-mount)](https://www.npmjs.com/package/leveldb-mount) [![npm downloads](https://img.shields.io/npm/dw/leveldb-mount)](https://www.npmjs.com/package/leveldb-mount) [![License](https://img.shields.io/npm/l/leveldb-mount?color=blue)](https://www.npmjs.com/package/leveldb-mount) [![Last commit](https://img.shields.io/github/last-commit/jameskyburz/leveldb-mount)](https://github.com/jameskyburz/leveldb-mount) [![Contributors](https://img.shields.io/github/contributors/jameskyburz/leveldb-mount?color=blue)](https://github.com/jameskyburz/leveldb-mount/graphs/contributors)
-**Applications and libraries that use Level modules under the hood.**
+LevelDB server and client with optional client-side REPL. Built with [`subleveldown`][subleveldown] and [`multileveldown`][multileveldown].
-### [`ipfs`][ipfs]
+### [`level2riak`][level2riak]
-A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.
+[![npm package version](https://img.shields.io/npm/v/level2riak)](https://www.npmjs.com/package/level2riak) [![npm downloads](https://img.shields.io/npm/dw/level2riak)](https://www.npmjs.com/package/level2riak) [![License](https://img.shields.io/npm/l/level2riak?color=blue)](https://www.npmjs.com/package/level2riak) [![Last commit](https://img.shields.io/github/last-commit/fritzy/level2git)](https://github.com/fritzy/level2git) [![Contributors](https://img.shields.io/github/contributors/fritzy/level2git?color=blue)](https://github.com/fritzy/level2git/graphs/contributors)
-### [`clocker`][clocker]
+A network service that allows you to connect to a Riak database over HTTP.
-Track project hours
+### [`level-cluster-get`][level-cluster-get]
-### [`copy-on-write`][copy-on-write]
+[![npm package version](https://img.shields.io/npm/v/level-cluster-get)](https://www.npmjs.com/package/level-cluster-get) [![npm downloads](https://img.shields.io/npm/dw/level-cluster-get)](https://www.npmjs.com/package/level-cluster-get) [![License](https://img.shields.io/npm/l/level-cluster-get?color=blue)](https://www.npmjs.com/package/level-cluster-get) [![Last commit](https://img.shields.io/github/last-commit/kesla/level-cluster-get)](https://github.com/kesla/level-cluster-get) [![Contributors](https://img.shields.io/github/contributors/kesla/level-cluster-get?color=blue)](https://github.com/kesla/level-cluster-get/graphs/contributors)
-A copy-on-write FUSE implementation
+Given a key, get all values from a cluster of [`multilevel`][multilevel] servers.
-### [`chrome-localstorage`][chrome-localstorage]
+### [`level-connect`][level-connect]
-CLI to manipulate Chrome and Chromium's localStorage on disk.
+[![npm package version](https://img.shields.io/npm/v/level-connect)](https://www.npmjs.com/package/level-connect) [![npm downloads](https://img.shields.io/npm/dw/level-connect)](https://www.npmjs.com/package/level-connect) [![License](https://img.shields.io/npm/l/level-connect?color=blue)](https://www.npmjs.com/package/level-connect) [![Last commit](https://img.shields.io/github/last-commit/mattstyles/level-connect)](https://github.com/mattstyles/level-connect) [![Contributors](https://img.shields.io/github/contributors/mattstyles/level-connect?color=blue)](https://github.com/mattstyles/level-connect/graphs/contributors)
-### [`cipherhub`][cipherhub]
+Connect to a [`level-party`][level-party] and [`level-sublevel`][level-sublevel] enabled LevelDB over HTTP.
-Encrypt messages based on GitHub SSH public keys
+### [`level-pubsub`][level-pubsub]
-### [`code-music-studio`][code-music-studio]
+[![npm package version](https://img.shields.io/npm/v/level-pubsub)](https://www.npmjs.com/package/level-pubsub) [![npm downloads](https://img.shields.io/npm/dw/level-pubsub)](https://www.npmjs.com/package/level-pubsub) [![License](https://img.shields.io/npm/l/level-pubsub?color=blue)](https://www.npmjs.com/package/level-pubsub) [![Last commit](https://img.shields.io/github/last-commit/hij1nx/level-pubsub)](https://github.com/hij1nx/level-pubsub) [![Contributors](https://img.shields.io/github/contributors/hij1nx/level-pubsub?color=blue)](https://github.com/hij1nx/level-pubsub/graphs/contributors)
-Design musical algorithms
+PubSub with server and client on top of [`levelup`][levelup].
-### [`level-todo`][level-todo]
+### [`level-query`][level-query]
-A todo list using LevelDB.
+[![npm package version](https://img.shields.io/npm/v/level-query)](https://www.npmjs.com/package/level-query) [![npm downloads](https://img.shields.io/npm/dw/level-query)](https://www.npmjs.com/package/level-query) [![License](https://img.shields.io/npm/l/level-query?color=blue)](https://www.npmjs.com/package/level-query) [![Last commit](https://img.shields.io/github/last-commit/substack/level-query)](https://github.com/substack/level-query) [![Contributors](https://img.shields.io/github/contributors/substack/level-query?color=blue)](https://github.com/substack/level-query/graphs/contributors)
-### [`electron-crash-report-service`][electron-crash-report-service]
+Expose a [`level-sublevel`][level-sublevel] database over HTTP, searchable with query strings.
-Aggregate crash reports for Electron apps
+### [`level-over-http`][level-over-http]
-### [`cross-street-indexer`][cross-street-indexer]
+[![npm package version](https://img.shields.io/npm/v/level-over-http)](https://www.npmjs.com/package/level-over-http) [![npm downloads](https://img.shields.io/npm/dw/level-over-http)](https://www.npmjs.com/package/level-over-http) [![License](https://img.shields.io/npm/l/level-over-http?color=blue)](https://www.npmjs.com/package/level-over-http) [![Last commit](https://img.shields.io/github/last-commit/lakowske/level-over-http)](https://github.com/lakowske/level-over-http) [![Contributors](https://img.shields.io/github/contributors/lakowske/level-over-http?color=blue)](https://github.com/lakowske/level-over-http/graphs/contributors)
-Blazing fast tile based geocoder that matches cross street (road intersections) entirely sourced by OSM QA Tiles.
+Another solution to expose [`levelup`][levelup] over HTTP.
-### [`lt-core`][lt-core]
+### [`level-rpc`][level-rpc]
-Time tracking library.
+[![npm package version](https://img.shields.io/npm/v/level-rpc)](https://www.npmjs.com/package/level-rpc) [![npm downloads](https://img.shields.io/npm/dw/level-rpc)](https://www.npmjs.com/package/level-rpc) [![License](https://img.shields.io/npm/l/level-rpc?color=blue)](https://www.npmjs.com/package/level-rpc) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-rpc)](https://github.com/juliangruber/level-rpc) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-rpc?color=blue)](https://github.com/juliangruber/level-rpc/graphs/contributors)
-### [`npm-search`][npm-search]
+Fast RPC mechanism for [`levelup`][levelup]. Intended as binary-compatible alternative to [`multilevel`][multilevel].
-An index of npm using [`levelup`][levelup].
+### [`level-events`][level-events]
-### [`connect-level`][connect-level]
+[![npm package version](https://img.shields.io/npm/v/level-events)](https://www.npmjs.com/package/level-events) [![npm downloads](https://img.shields.io/npm/dw/level-events)](https://www.npmjs.com/package/level-events) [![License](https://img.shields.io/npm/l/level-events?color=blue)](https://www.npmjs.com/package/level-events) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/level-events)](https://github.com/mafintosh/level-events) [![Contributors](https://img.shields.io/github/contributors/mafintosh/level-events?color=blue)](https://github.com/mafintosh/level-events/graphs/contributors)
-A `connect` / `express` session store backed by LevelDB via [`levelup`][levelup].
+Get an event everytime something is written / read / deleted using [`levelup`][levelup].
-### [`hadron`][hadron]
+### [`level-hookdown`][level-hookdown]
-A hackable publishing platform using LevelDB as main database.
+[![npm package version](https://img.shields.io/npm/v/level-hookdown)](https://www.npmjs.com/package/level-hookdown) [![npm downloads](https://img.shields.io/npm/dw/level-hookdown)](https://www.npmjs.com/package/level-hookdown) [![License](https://img.shields.io/npm/l/level-hookdown?color=blue)](https://www.npmjs.com/package/level-hookdown) [![Last commit](https://img.shields.io/github/last-commit/hypermodules/level-hookdown)](https://github.com/hypermodules/level-hookdown) [![Contributors](https://img.shields.io/github/contributors/hypermodules/level-hookdown?color=blue)](https://github.com/hypermodules/level-hookdown/graphs/contributors)
-### [`groove basin`][groove basin]
+Simple [`levelup`][levelup] hooks.
-Music player server with a web-based user interface. Uses [`levelup`][levelup] for the music library database.
+### [`level-post`][level-post]
-### [`prerender-level-cache`][prerender-level-cache]
+[![npm package version](https://img.shields.io/npm/v/level-post)](https://www.npmjs.com/package/level-post) [![npm downloads](https://img.shields.io/npm/dw/level-post)](https://www.npmjs.com/package/level-post) [![License](https://img.shields.io/npm/l/level-post?color=blue)](https://www.npmjs.com/package/level-post) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-post)](https://github.com/dominictarr/level-post) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-post?color=blue)](https://github.com/dominictarr/level-post/graphs/contributors)
-[Prerender](https://github.com/prerender/prerender) plugin to use level as a cache store.
+Consistent post hooks for [`levelup`][levelup].
-### [`tsd`][tsd]
+### [`level-condition`][level-condition]
-Spin up a quick server to visualize time series data.
+[![npm package version](https://img.shields.io/npm/v/level-condition)](https://www.npmjs.com/package/level-condition) [![npm downloads](https://img.shields.io/npm/dw/level-condition)](https://www.npmjs.com/package/level-condition) [![License](https://img.shields.io/npm/l/level-condition?color=blue)](https://www.npmjs.com/package/level-condition) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-condition)](https://github.com/juliangruber/level-condition) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-condition?color=blue)](https://github.com/juliangruber/level-condition/graphs/contributors)
-### [`appfeed`][appfeed]
+Get notified when a condition is triggered inside a [`levelup`][levelup] instance.
-Version feed for trusted application delivery
+### [`level-hooks`][level-hooks]
-### [`arrivals-osx`][arrivals-osx]
+[![npm package version](https://img.shields.io/npm/v/level-hooks)](https://www.npmjs.com/package/level-hooks) [![npm downloads](https://img.shields.io/npm/dw/level-hooks)](https://www.npmjs.com/package/level-hooks) [![License](https://img.shields.io/npm/l/level-hooks?color=blue)](https://www.npmjs.com/package/level-hooks) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-hooks)](https://github.com/dominictarr/level-hooks) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-hooks?color=blue)](https://github.com/dominictarr/level-hooks/graphs/contributors)
-Watch a folder for audio and video arrivals and convert them to Apple-friendly formats.
+Implements a hook mechanism that allows you to intercept `put`, `delete` and `batch` operations. You can then turn those operations into batches. Useful if you want to turn a `put` into an atomic batch for say an automatic map operation.
NB. Author recommends using [`level-sublevel`][level-sublevel] instead of `level-hooks` directly. Note that [`level-sublevel`][level-sublevel] is not maintained.
Both are now (anno 2024) superseded by [`abstract-level`][abstract-level] which has builtin sublevels and hooks.
-### [`bleach-log-server`][bleach-log-server]
+### [`levelup-async-iterator`][levelup-async-iterator]
-Keep track of bleach levels for a hot tub or a pool.
+[![npm package version](https://img.shields.io/npm/v/levelup-async-iterator)](https://www.npmjs.com/package/levelup-async-iterator) [![npm downloads](https://img.shields.io/npm/dw/levelup-async-iterator)](https://www.npmjs.com/package/levelup-async-iterator) [![License](https://img.shields.io/npm/l/levelup-async-iterator?color=blue)](https://www.npmjs.com/package/levelup-async-iterator) [![Last commit](https://img.shields.io/github/last-commit/MeirionHughes/levelup-async-iterator)](https://github.com/MeirionHughes/levelup-async-iterator) [![Contributors](https://img.shields.io/github/contributors/MeirionHughes/levelup-async-iterator?color=blue)](https://github.com/MeirionHughes/levelup-async-iterator/graphs/contributors)
-### [`browserify-cdn`][browserify-cdn]
+Add an `iterator()` method to [`levelup`][levelup] with [`Symbol.asyncIterator`](https://github.com/tc39/proposal-async-iteration). Superseded by builtin `Symbol.asyncIterator` support on [`abstract-leveldown`][abstract-leveldown] iterators.
-Browserify CDN. Caches browserify bundles in LevelDB.
+### [`level-iterator`][level-iterator]
-## Legacy
+[![npm package version](https://img.shields.io/npm/v/level-iterator)](https://www.npmjs.com/package/level-iterator) [![npm downloads](https://img.shields.io/npm/dw/level-iterator)](https://www.npmjs.com/package/level-iterator) [![License](https://img.shields.io/npm/l/level-iterator?color=blue)](https://www.npmjs.com/package/level-iterator) [![Last commit](https://img.shields.io/github/last-commit/vweevers/level-iterator)](https://github.com/vweevers/level-iterator) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-iterator?color=blue)](https://github.com/vweevers/level-iterator/graphs/contributors)
-**Modules that are deprecated, archived or superseded. Listed here for the historical record.**
+Decoding iterator for [`levelup`][levelup] instances. Wraps iterators like [`level-iterator-stream`][level-iterator-stream] does. Superseded by [`encoding-down`][encoding-down] and later [`abstract-level`][abstract-level].
### [`level-delete-stream`][level-delete-stream]
+[![npm package version](https://img.shields.io/npm/v/level-delete-stream)](https://www.npmjs.com/package/level-delete-stream) [![npm downloads](https://img.shields.io/npm/dw/level-delete-stream)](https://www.npmjs.com/package/level-delete-stream) [![License](https://img.shields.io/npm/l/level-delete-stream?color=blue)](https://www.npmjs.com/package/level-delete-stream) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-delete-stream)](https://github.com/juliangruber/level-delete-stream) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-delete-stream?color=blue)](https://github.com/juliangruber/level-delete-stream/graphs/contributors)
+
A streams1 deleteStream for [`levelup`][levelup]. Superseded by `db.clear()`.
### [`level-delete-range`][level-delete-range]
+[![npm package version](https://img.shields.io/npm/v/level-delete-range)](https://www.npmjs.com/package/level-delete-range) [![npm downloads](https://img.shields.io/npm/dw/level-delete-range)](https://www.npmjs.com/package/level-delete-range) [![License](https://img.shields.io/npm/l/level-delete-range?color=blue)](https://www.npmjs.com/package/level-delete-range) [![Last commit](https://img.shields.io/github/last-commit/Raynos/level-delete-range)](https://github.com/Raynos/level-delete-range) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-delete-range?color=blue)](https://github.com/Raynos/level-delete-range/graphs/contributors)
+
Delete a range of keys from [`levelup`][levelup]. Superseded by `db.clear()`.
### [`level-browserify`][level-browserify]
+[![npm package version](https://img.shields.io/npm/v/level-browserify)](https://www.npmjs.com/package/level-browserify) [![npm downloads](https://img.shields.io/npm/dw/level-browserify)](https://www.npmjs.com/package/level-browserify) [![License](https://img.shields.io/npm/l/level-browserify?color=blue)](https://www.npmjs.com/package/level-browserify) [![Last commit](https://img.shields.io/github/last-commit/Level/level-browserify)](https://github.com/Level/level-browserify) [![Contributors](https://img.shields.io/github/contributors/Level/level-browserify?color=blue)](https://github.com/Level/level-browserify/graphs/contributors)
+
Bundle for [`level-js`][level-js] and [`leveldown`][leveldown]. No longer maintained: superseded by [`level`][level] v5.0.0.
### [`level-mapped-index`][level-mapped-index]
+[![npm package version](https://img.shields.io/npm/v/level-mapped-index)](https://www.npmjs.com/package/level-mapped-index) [![npm downloads](https://img.shields.io/npm/dw/level-mapped-index)](https://www.npmjs.com/package/level-mapped-index) [![License](https://img.shields.io/npm/l/level-mapped-index?color=blue)](https://www.npmjs.com/package/level-mapped-index) [![Last commit](https://img.shields.io/github/last-commit/rvagg/node-level-mapped-index)](https://github.com/rvagg/node-level-mapped-index) [![Contributors](https://img.shields.io/github/contributors/rvagg/node-level-mapped-index?color=blue)](https://github.com/rvagg/node-level-mapped-index/graphs/contributors)
+
Indexes for [`levelup`][levelup] built on [`map-reduce`][map-reduce]. Uses a custom indexing function for each index to parse and record index values for each entry. Archived.
### [`level-encoding`][level-encoding]
+[![npm package version](https://img.shields.io/npm/v/level-encoding)](https://www.npmjs.com/package/level-encoding) [![npm downloads](https://img.shields.io/npm/dw/level-encoding)](https://www.npmjs.com/package/level-encoding) [![License](https://img.shields.io/npm/l/level-encoding?color=blue)](https://www.npmjs.com/package/level-encoding) [![Last commit](https://img.shields.io/github/last-commit/Raynos/level-encoding)](https://github.com/Raynos/level-encoding) [![Contributors](https://img.shields.io/github/contributors/Raynos/level-encoding?color=blue)](https://github.com/Raynos/level-encoding/graphs/contributors)
+
Implements the encoding logic of a [`levelup`][levelup]-like database. This functionality lives on in [`level-codec`][level-codec].
### [`byteup`][byteup]
+[![npm package version](https://img.shields.io/npm/v/byteup)](https://www.npmjs.com/package/byteup) [![npm downloads](https://img.shields.io/npm/dw/byteup)](https://www.npmjs.com/package/byteup) [![License](https://img.shields.io/npm/l/byteup?color=blue)](https://www.npmjs.com/package/byteup) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/byteup)](https://github.com/eugeneware/byteup) [![Contributors](https://img.shields.io/github/contributors/eugeneware/byteup?color=blue)](https://github.com/eugeneware/byteup/graphs/contributors)
+
Adds [`bytewise`][bytewise] as a native encoding for [`levelup`][levelup]. This can now be achieved with [`encoding-down`][encoding-down] and `{ keyEncoding: bytewise }`.
### [`msgpackup`][msgpackup]
+[![npm package version](https://img.shields.io/npm/v/msgpackup)](https://www.npmjs.com/package/msgpackup) [![npm downloads](https://img.shields.io/npm/dw/msgpackup)](https://www.npmjs.com/package/msgpackup) [![License](https://img.shields.io/npm/l/msgpackup?color=blue)](https://www.npmjs.com/package/msgpackup) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/msgpackup)](https://github.com/eugeneware/msgpackup) [![Contributors](https://img.shields.io/github/contributors/eugeneware/msgpackup?color=blue)](https://github.com/eugeneware/msgpackup/graphs/contributors)
+
Adds [msgpack](https://github.com/msgpack/msgpack) as a native encoding for [`levelup`][levelup]. This can now be achieved with [`encoding-down`][encoding-down] and `{ keyEncoding: msgpack }`.
### [`level-cbatch`][level-cbatch]
+[![npm package version](https://img.shields.io/npm/v/level-cbatch)](https://www.npmjs.com/package/level-cbatch) [![npm downloads](https://img.shields.io/npm/dw/level-cbatch)](https://www.npmjs.com/package/level-cbatch) [![License](https://img.shields.io/npm/l/level-cbatch?color=blue)](https://www.npmjs.com/package/level-cbatch) [![Last commit](https://img.shields.io/github/last-commit/kesla/level-cbatch)](https://github.com/kesla/level-cbatch) [![Contributors](https://img.shields.io/github/contributors/kesla/level-cbatch?color=blue)](https://github.com/kesla/level-cbatch/graphs/contributors)
+
Provides a chainable API for `db.batch()`. This functionality is now provided by [`levelup`][levelup].
### [`memdb`][memdb]
+[![npm package version](https://img.shields.io/npm/v/memdb)](https://www.npmjs.com/package/memdb) [![npm downloads](https://img.shields.io/npm/dw/memdb)](https://www.npmjs.com/package/memdb) [![License](https://img.shields.io/npm/l/memdb?color=blue)](https://www.npmjs.com/package/memdb) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/memdb)](https://github.com/juliangruber/memdb) [![Contributors](https://img.shields.io/github/contributors/juliangruber/memdb?color=blue)](https://github.com/juliangruber/memdb/graphs/contributors)
+
[`levelup`][levelup] + [`memdown`][memdown]. Superseded by [`level-mem`][level-mem].
### [`levelup-iterator`][levelup-iterator]
+[![npm package version](https://img.shields.io/npm/v/levelup-iterator)](https://www.npmjs.com/package/levelup-iterator) [![npm downloads](https://img.shields.io/npm/dw/levelup-iterator)](https://www.npmjs.com/package/levelup-iterator) [![License](https://img.shields.io/npm/l/levelup-iterator?color=blue)](https://www.npmjs.com/package/levelup-iterator) [![Last commit](https://img.shields.io/github/last-commit/mirkokiefer/levelup-iterator)](https://github.com/mirkokiefer/levelup-iterator) [![Contributors](https://img.shields.io/github/contributors/mirkokiefer/levelup-iterator?color=blue)](https://github.com/mirkokiefer/levelup-iterator/graphs/contributors)
+
Use [`abstract-leveldown`][abstract-leveldown] iterators instead of readable streams to traverse the database. Iterators are exposed by [`levelup`][levelup] since `levelup@3.1.0`.
### [`levelidb`][levelidb]
+[![npm package version](https://img.shields.io/npm/v/levelidb)](https://www.npmjs.com/package/levelidb) [![npm downloads](https://img.shields.io/npm/dw/levelidb)](https://www.npmjs.com/package/levelidb) [![License](https://img.shields.io/npm/l/levelidb?color=blue)](https://www.npmjs.com/package/levelidb) [![Last commit](https://img.shields.io/github/last-commit/Raynos/levelidb)](https://github.com/Raynos/levelidb) [![Contributors](https://img.shields.io/github/contributors/Raynos/levelidb?color=blue)](https://github.com/Raynos/levelidb/graphs/contributors)
+
A [`levelup`][levelup] interface on top of IndexedDB. Superseded by [`level-js`][level-js] and [`level`][level].
### [`level-multiply`][level-multiply]
+[![npm package version](https://img.shields.io/npm/v/level-multiply)](https://www.npmjs.com/package/level-multiply) [![npm downloads](https://img.shields.io/npm/dw/level-multiply)](https://www.npmjs.com/package/level-multiply) [![License](https://img.shields.io/npm/l/level-multiply?color=blue)](https://www.npmjs.com/package/level-multiply) [![Last commit](https://img.shields.io/github/last-commit/rvagg/node-level-multiply)](https://github.com/rvagg/node-level-multiply) [![Contributors](https://img.shields.io/github/contributors/rvagg/node-level-multiply?color=blue)](https://github.com/rvagg/node-level-multiply/graphs/contributors)
+
Make [`levelup`][levelup] `get()`, `put()` and `del()` methods accept multiples keys & values. Archived.
### [`level-namespace`][level-namespace]
+[![npm package version](https://img.shields.io/npm/v/level-namespace)](https://www.npmjs.com/package/level-namespace) [![npm downloads](https://img.shields.io/npm/dw/level-namespace)](https://www.npmjs.com/package/level-namespace) [![License](https://img.shields.io/npm/l/level-namespace?color=blue)](https://www.npmjs.com/package/level-namespace) [![Last commit](https://img.shields.io/github/last-commit/kesla/level-namespace)](https://github.com/kesla/level-namespace) [![Contributors](https://img.shields.io/github/contributors/kesla/level-namespace?color=blue)](https://github.com/kesla/level-namespace/graphs/contributors)
+
Split your db up into multiple namespaces. Deprecated.
### [`q-level`][q-level]
+[![npm package version](https://img.shields.io/npm/v/q-level)](https://www.npmjs.com/package/q-level) [![npm downloads](https://img.shields.io/npm/dw/q-level)](https://www.npmjs.com/package/q-level) [![License](https://img.shields.io/npm/l/q-level?color=blue)](https://www.npmjs.com/package/q-level) [![Last commit](https://img.shields.io/github/last-commit/mvayngrib/q-level)](https://github.com/mvayngrib/q-level) [![Contributors](https://img.shields.io/github/contributors/mvayngrib/q-level?color=blue)](https://github.com/mvayngrib/q-level/graphs/contributors)
+
[`levelup`][levelup] with Q promises. [`levelup`][levelup] has native Promise support now.
### [`level-static`][level-static]
+[![npm package version](https://img.shields.io/npm/v/level-static)](https://www.npmjs.com/package/level-static) [![npm downloads](https://img.shields.io/npm/dw/level-static)](https://www.npmjs.com/package/level-static) [![License](https://img.shields.io/npm/l/level-static?color=blue)](https://www.npmjs.com/package/level-static) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-static)](https://github.com/dominictarr/level-static) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-static?color=blue)](https://github.com/dominictarr/level-static/graphs/contributors)
+
Use [`levelup`][levelup] as a static file server. Abandoned.
### [`level-spaces`][level-spaces]
+[![npm package version](https://img.shields.io/npm/v/level-spaces)](https://www.npmjs.com/package/level-spaces) [![npm downloads](https://img.shields.io/npm/dw/level-spaces)](https://www.npmjs.com/package/level-spaces) [![License](https://img.shields.io/npm/l/level-spaces?color=blue)](https://www.npmjs.com/package/level-spaces) [![Last commit](https://img.shields.io/github/last-commit/rvagg/level-spaces)](https://github.com/rvagg/level-spaces) [![Contributors](https://img.shields.io/github/contributors/rvagg/level-spaces?color=blue)](https://github.com/rvagg/level-spaces/graphs/contributors)
+
A simple namespacing solution for [`levelup`][levelup]. Deprecated.
### [`level-object`][level-object]
+[![npm package version](https://img.shields.io/npm/v/level-object)](https://www.npmjs.com/package/level-object) [![npm downloads](https://img.shields.io/npm/dw/level-object)](https://www.npmjs.com/package/level-object) [![License](https://img.shields.io/npm/l/level-object?color=blue)](https://www.npmjs.com/package/level-object) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-object)](https://github.com/juliangruber/level-object) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-object?color=blue)](https://github.com/juliangruber/level-object/graphs/contributors)
+
Store objects in [`levelup`][levelup]. Author recommends [`level-pathwise`][level-pathwise] instead.
### [`level-scuttlebutt`][level-scuttlebutt]
+[![npm package version](https://img.shields.io/npm/v/level-scuttlebutt)](https://www.npmjs.com/package/level-scuttlebutt) [![npm downloads](https://img.shields.io/npm/dw/level-scuttlebutt)](https://www.npmjs.com/package/level-scuttlebutt) [![License](https://img.shields.io/npm/l/level-scuttlebutt?color=blue)](https://www.npmjs.com/package/level-scuttlebutt) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-scuttlebutt)](https://github.com/dominictarr/level-scuttlebutt) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-scuttlebutt?color=blue)](https://github.com/dominictarr/level-scuttlebutt/graphs/contributors)
+
Persist and query scuttlebutt documents (requires [`level-sublevel`][level-sublevel]). Abandoned.
### [`gun-level`][gun-level]
+[![npm package version](https://img.shields.io/npm/v/gun-level)](https://www.npmjs.com/package/gun-level) [![npm downloads](https://img.shields.io/npm/dw/gun-level)](https://www.npmjs.com/package/gun-level) [![License](https://img.shields.io/npm/l/gun-level?color=blue)](https://www.npmjs.com/package/gun-level) [![Last commit](https://img.shields.io/github/last-commit/PsychoLlama/gun-level)](https://github.com/PsychoLlama/gun-level) [![Contributors](https://img.shields.io/github/contributors/PsychoLlama/gun-level?color=blue)](https://github.com/PsychoLlama/gun-level/graphs/contributors)
+
Sync graph-style data real-time between browsers and servers. Discontinued.
### [`level-co`][level-co]
+[![npm package version](https://img.shields.io/npm/v/level-co)](https://www.npmjs.com/package/level-co) [![npm downloads](https://img.shields.io/npm/dw/level-co)](https://www.npmjs.com/package/level-co) [![License](https://img.shields.io/npm/l/level-co?color=blue)](https://www.npmjs.com/package/level-co) [![Last commit](https://img.shields.io/github/last-commit/juliangruber/level-co)](https://github.com/juliangruber/level-co) [![Contributors](https://img.shields.io/github/contributors/juliangruber/level-co?color=blue)](https://github.com/juliangruber/level-co/graphs/contributors)
+
[`levelup`][levelup] wrappers for [co](https://github.com/tj/co). Instead use native ES6 features.
### [`level-session`][level-session]
+[![npm package version](https://img.shields.io/npm/v/level-session)](https://www.npmjs.com/package/level-session) [![npm downloads](https://img.shields.io/npm/dw/level-session)](https://www.npmjs.com/package/level-session) [![License](https://img.shields.io/npm/l/level-session?color=blue)](https://www.npmjs.com/package/level-session) [![Last commit](https://img.shields.io/github/last-commit/rvagg/node-level-session)](https://github.com/rvagg/node-level-session) [![Contributors](https://img.shields.io/github/contributors/rvagg/node-level-session?color=blue)](https://github.com/rvagg/node-level-session/graphs/contributors)
+
Framework-agnostic, LevelDB-backed web server session manager. Archived.
### [`level-socket`][level-socket]
+[![npm package version](https://img.shields.io/npm/v/level-socket)](https://www.npmjs.com/package/level-socket) [![npm downloads](https://img.shields.io/npm/dw/level-socket)](https://www.npmjs.com/package/level-socket) [![License](https://img.shields.io/npm/l/level-socket?color=blue)](https://www.npmjs.com/package/level-socket) [![Last commit](https://img.shields.io/github/last-commit/maxogden/level-socket)](https://github.com/maxogden/level-socket) [![Contributors](https://img.shields.io/github/contributors/maxogden/level-socket?color=blue)](https://github.com/maxogden/level-socket/graphs/contributors)
+
Backend server that exposes [`levelup`][levelup] over authenticated cross domain websockets.
### [`level-user`][level-user]
+[![npm package version](https://img.shields.io/npm/v/level-user)](https://www.npmjs.com/package/level-user) [![npm downloads](https://img.shields.io/npm/dw/level-user)](https://www.npmjs.com/package/level-user) [![License](https://img.shields.io/npm/l/level-user?color=blue)](https://www.npmjs.com/package/level-user) [![Last commit](https://img.shields.io/github/last-commit/maxogden/level-user)](https://github.com/maxogden/level-user) [![Contributors](https://img.shields.io/github/contributors/maxogden/level-user?color=blue)](https://github.com/maxogden/level-user/graphs/contributors)
+
Client side library for authenticating with and moving data over [`level-socket`][level-socket].
### [`string-range`][string-range]
+[![npm package version](https://img.shields.io/npm/v/string-range)](https://www.npmjs.com/package/string-range) [![npm downloads](https://img.shields.io/npm/dw/string-range)](https://www.npmjs.com/package/string-range) [![License](https://img.shields.io/npm/l/string-range?color=blue)](https://www.npmjs.com/package/string-range) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/string-range)](https://github.com/dominictarr/string-range) [![Contributors](https://img.shields.io/github/contributors/dominictarr/string-range?color=blue)](https://github.com/dominictarr/string-range/graphs/contributors)
+
Manipulate string ranges for `db.createReadStream()`. Abandoned.
### [`range-bucket`][range-bucket]
+[![npm package version](https://img.shields.io/npm/v/range-bucket)](https://www.npmjs.com/package/range-bucket) [![npm downloads](https://img.shields.io/npm/dw/range-bucket)](https://www.npmjs.com/package/range-bucket) [![License](https://img.shields.io/npm/l/range-bucket?color=blue)](https://www.npmjs.com/package/range-bucket) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/range-bucket)](https://github.com/dominictarr/range-bucket) [![Contributors](https://img.shields.io/github/contributors/dominictarr/range-bucket?color=blue)](https://github.com/dominictarr/range-bucket/graphs/contributors)
+
Generate string ranges that group into ranges, suitable for use as database keys. Abandoned.
### [`level-partition-check`][level-partition-check]
+[![npm package version](https://img.shields.io/npm/v/level-partition-check)](https://www.npmjs.com/package/level-partition-check) [![npm downloads](https://img.shields.io/npm/dw/level-partition-check)](https://www.npmjs.com/package/level-partition-check) [![License](https://img.shields.io/npm/l/level-partition-check?color=blue)](https://www.npmjs.com/package/level-partition-check) [![Last commit](https://img.shields.io/github/last-commit/soldair/level-partition-check)](https://github.com/soldair/level-partition-check) [![Contributors](https://img.shields.io/github/contributors/soldair/level-partition-check?color=blue)](https://github.com/soldair/level-partition-check/graphs/contributors)
+
Extend [`levelup`][levelup] to error if you write outside of a specified range of keys. Stalled work in progress.
### [`level-binomial-replication`][level-binomial-replication]
+[![npm package version](https://img.shields.io/npm/v/level-binomial-replication)](https://www.npmjs.com/package/level-binomial-replication) [![npm downloads](https://img.shields.io/npm/dw/level-binomial-replication)](https://www.npmjs.com/package/level-binomial-replication) [![License](https://img.shields.io/npm/l/level-binomial-replication?color=blue)](https://www.npmjs.com/package/level-binomial-replication) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-binomial-replication)](https://github.com/dominictarr/level-binomial-replication) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-binomial-replication?color=blue)](https://github.com/dominictarr/level-binomial-replication/graphs/contributors)
+
Biniomial replication for [`levelup`][levelup]. Abandoned.
### [`level-bytewise`][level-bytewise]
+[![npm package version](https://img.shields.io/npm/v/level-bytewise)](https://www.npmjs.com/package/level-bytewise) [![npm downloads](https://img.shields.io/npm/dw/level-bytewise)](https://www.npmjs.com/package/level-bytewise) [![License](https://img.shields.io/npm/l/level-bytewise?color=blue)](https://www.npmjs.com/package/level-bytewise) [![Last commit](https://img.shields.io/github/last-commit/eugeneware/level-bytewise)](https://github.com/eugeneware/level-bytewise) [![Contributors](https://img.shields.io/github/contributors/eugeneware/level-bytewise?color=blue)](https://github.com/eugeneware/level-bytewise/graphs/contributors)
+
[`levelup`][levelup] with [`bytewise`][bytewise] key encoding and bytewise-friendly sublevels.
### [`level-peek`][level-peek]
+[![npm package version](https://img.shields.io/npm/v/level-peek)](https://www.npmjs.com/package/level-peek) [![npm downloads](https://img.shields.io/npm/dw/level-peek)](https://www.npmjs.com/package/level-peek) [![License](https://img.shields.io/npm/l/level-peek?color=blue)](https://www.npmjs.com/package/level-peek) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-peek)](https://github.com/dominictarr/level-peek) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-peek?color=blue)](https://github.com/dominictarr/level-peek/graphs/contributors)
+
Get the first or last record in a range. Abandoned.
### [`level-party-hyper`][level-party-hyper]
+[![npm package version](https://img.shields.io/npm/v/level-party-hyper)](https://www.npmjs.com/package/level-party-hyper) [![npm downloads](https://img.shields.io/npm/dw/level-party-hyper)](https://www.npmjs.com/package/level-party-hyper) [![License](https://img.shields.io/npm/l/level-party-hyper?color=blue)](https://www.npmjs.com/package/level-party-hyper) [![Last commit](https://img.shields.io/github/last-commit/jcrugzz/level-party)](https://github.com/jcrugzz/level-party) [![Contributors](https://img.shields.io/github/contributors/jcrugzz/level-party?color=blue)](https://github.com/jcrugzz/level-party/graphs/contributors)
+
Defunct fork of [`level-party`][level-party].
### [`level-prebuilt`][level-prebuilt]
+[![npm package version](https://img.shields.io/npm/v/level-prebuilt)](https://www.npmjs.com/package/level-prebuilt) [![npm downloads](https://img.shields.io/npm/dw/level-prebuilt)](https://www.npmjs.com/package/level-prebuilt) [![License](https://img.shields.io/npm/l/level-prebuilt?color=blue)](https://www.npmjs.com/package/level-prebuilt) [![Last commit](https://img.shields.io/github/last-commit/jhermsmeier/level-prebuilt)](https://github.com/jhermsmeier/level-prebuilt) [![Contributors](https://img.shields.io/github/contributors/jhermsmeier/level-prebuilt?color=blue)](https://github.com/jhermsmeier/level-prebuilt/graphs/contributors)
+
Same as [`level`][level] but with prebuilt binaries. This is now provided by [`level`][level] too.
### [`level-promise`][level-promise]
+[![npm package version](https://img.shields.io/npm/v/level-promise)](https://www.npmjs.com/package/level-promise) [![npm downloads](https://img.shields.io/npm/dw/level-promise)](https://www.npmjs.com/package/level-promise) [![License](https://img.shields.io/npm/l/level-promise?color=blue)](https://www.npmjs.com/package/level-promise) [![Last commit](https://img.shields.io/github/last-commit/nathan7/level-promise)](https://github.com/nathan7/level-promise) [![Contributors](https://img.shields.io/github/contributors/nathan7/level-promise?color=blue)](https://github.com/nathan7/level-promise/graphs/contributors)
+
[`levelup`][levelup] with Promises. This is now provided by [`levelup`][levelup] out of the box.
### [`level-search`][level-search]
+[![npm package version](https://img.shields.io/npm/v/level-search)](https://www.npmjs.com/package/level-search) [![npm downloads](https://img.shields.io/npm/dw/level-search)](https://www.npmjs.com/package/level-search) [![License](https://img.shields.io/npm/l/level-search?color=blue)](https://www.npmjs.com/package/level-search) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-search)](https://github.com/dominictarr/level-search) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-search?color=blue)](https://github.com/dominictarr/level-search/graphs/contributors)
+
Index and search every property in [`levelup`][levelup] containing object values. Abandoned.
### [`level-scout`][level-scout]
+[![npm package version](https://img.shields.io/npm/v/level-scout)](https://www.npmjs.com/package/level-scout) [![npm downloads](https://img.shields.io/npm/dw/level-scout)](https://www.npmjs.com/package/level-scout) [![License](https://img.shields.io/npm/l/level-scout?color=blue)](https://www.npmjs.com/package/level-scout) [![Last commit](https://img.shields.io/github/last-commit/vweevers/level-scout)](https://github.com/vweevers/level-scout) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-scout?color=blue)](https://github.com/vweevers/level-scout/graphs/contributors)
+
Range search with a query planner. Development stalled.
### [`leveldown-android-prebuilt`][leveldown-android-prebuilt]
+[![npm package version](https://img.shields.io/npm/v/leveldown-android-prebuilt)](https://www.npmjs.com/package/leveldown-android-prebuilt) [![npm downloads](https://img.shields.io/npm/dw/leveldown-android-prebuilt)](https://www.npmjs.com/package/leveldown-android-prebuilt) [![License](https://img.shields.io/npm/l/leveldown-android-prebuilt?color=blue)](https://www.npmjs.com/package/leveldown-android-prebuilt) [![Last commit](https://img.shields.io/github/last-commit/level/leveldown)](https://github.com/level/leveldown) [![Contributors](https://img.shields.io/github/contributors/level/leveldown?color=blue)](https://github.com/level/leveldown/graphs/contributors)
+
Defunct fork of [`leveldown`][leveldown] to add Android support. Merged into `leveldown`.
### [`leveldown-prebuilt`][leveldown-prebuilt]
+[![npm package version](https://img.shields.io/npm/v/leveldown-prebuilt)](https://www.npmjs.com/package/leveldown-prebuilt) [![npm downloads](https://img.shields.io/npm/dw/leveldown-prebuilt)](https://www.npmjs.com/package/leveldown-prebuilt) [![License](https://img.shields.io/npm/l/leveldown-prebuilt?color=blue)](https://www.npmjs.com/package/leveldown-prebuilt) [![Last commit](https://img.shields.io/github/last-commit/mafintosh/leveldown-prebuilt)](https://github.com/mafintosh/leveldown-prebuilt) [![Contributors](https://img.shields.io/github/contributors/mafintosh/leveldown-prebuilt?color=blue)](https://github.com/mafintosh/leveldown-prebuilt/graphs/contributors)
+
Defunct fork of [`leveldown`][leveldown] to add prebuilt binaries. Now provided by `leveldown`.
### [`level-map-index`][level-map-index]
+[![npm package version](https://img.shields.io/npm/v/level-map-index)](https://www.npmjs.com/package/level-map-index) [![npm downloads](https://img.shields.io/npm/dw/level-map-index)](https://www.npmjs.com/package/level-map-index) [![License](https://img.shields.io/npm/l/level-map-index?color=blue)](https://www.npmjs.com/package/level-map-index) [![Last commit](https://img.shields.io/github/last-commit/vweevers/level-map-index)](https://github.com/vweevers/level-map-index) [![Contributors](https://img.shields.io/github/contributors/vweevers/level-map-index?color=blue)](https://github.com/vweevers/level-map-index/graphs/contributors)
+
Another indexing module. Adapted from [`map-reduce`][map-reduce]. Author recommends other solutions.
### [`level-memview`][level-memview]
+[![npm package version](https://img.shields.io/npm/v/level-memview)](https://www.npmjs.com/package/level-memview) [![npm downloads](https://img.shields.io/npm/dw/level-memview)](https://www.npmjs.com/package/level-memview) [![License](https://img.shields.io/npm/l/level-memview?color=blue)](https://www.npmjs.com/package/level-memview) [![Last commit](https://img.shields.io/github/last-commit/dominictarr/level-memview)](https://github.com/dominictarr/level-memview) [![Contributors](https://img.shields.io/github/contributors/dominictarr/level-memview?color=blue)](https://github.com/dominictarr/level-memview/graphs/contributors)
+
In memory view on top of [`levelup`][levelup]. Abandoned.
### [`plumbdb`][plumbdb]
+[![npm package version](https://img.shields.io/npm/v/plumbdb)](https://www.npmjs.com/package/plumbdb) [![npm downloads](https://img.shields.io/npm/dw/plumbdb)](https://www.npmjs.com/package/plumbdb) [![License](https://img.shields.io/npm/l/plumbdb?color=blue)](https://www.npmjs.com/package/plumbdb) [![Last commit](https://img.shields.io/github/last-commit/maxogden/plumbdb)](https://github.com/maxogden/plumbdb) [![Contributors](https://img.shields.io/github/contributors/maxogden/plumbdb?color=blue)](https://github.com/maxogden/plumbdb/graphs/contributors)
+
HTTP request handlers for building web services on top of LevelDB. Not in active development.
## 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`](https://github.com/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.
+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`. A module can have the following properties:
-See the [Contribution Guide](https://github.com/Level/community/blob/master/CONTRIBUTING.md) for more details.
+- `github`: the GitHub slug, for example `Level/awesome`
+- `url`: homepage if `github` is not set meaning the project is hosted elsewhere
+- `description`: a short description. Supports markdown including links to other modules.
+- `compatibility`: an array of npm package names, to declare compatibility with (for example) `abstract-level` versions. Best explained by looking at examples.
+- `timeless`: if true, make the "last commit" badge green, to indicate that the module is feature-complete and can be used even if it seems old by lack of activity.
+- `copyrightYear`, `author` and `oldCategory`: not used, kept for the historical record.
## License
@@ -1964,7 +2049,7 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[@adorsys/encrypt-down]: https://github.com/adorsys/encrypt-down
-[@nano-sql/core]: https://github.com/ClickSimply/Nano-SQL
+[abstract-level]: https://github.com/Level/abstract-level
[abstract-leveldown]: https://github.com/Level/abstract-leveldown
@@ -1992,6 +2077,8 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[bleach-log-server]: https://github.com/substack/bleach-log-server
+[browser-level]: https://github.com/Level/browser-level
+
[browserify-cdn]: https://github.com/jesusabdullah/browserify-cdn
[browserify-fs]: https://github.com/mafintosh/browserify-fs
@@ -2018,9 +2105,9 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[cipherhub]: https://github.com/substack/cipherhub
-[clocker]: https://github.com/substack/clocker
+[classic-level]: https://github.com/Level/classic-level
-[cluster-levelup]: https://github.com/chiguireitor/cluster-levelup
+[clocker]: https://github.com/substack/clocker
[code-music-studio]: https://github.com/substack/code-music-studio
@@ -2052,8 +2139,6 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[firedup]: https://github.com/eugeneware/firedup
-[flash-store]: https://github.com/zixia/flash-store
-
[fruitdown]: https://github.com/nolanlawson/fruitdown
[gaiadown-ts]: https://github.com/acidleroy/gaiadown-ts
@@ -2078,8 +2163,6 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[jsonquery-engine]: https://github.com/eugeneware/jsonquery-engine
-[kwdb]: https://github.com/KsRyY/kwdb
-
[lem]: https://github.com/binocarlos/lem
[len]: https://github.com/binocarlos/len
@@ -2354,6 +2437,8 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[level-reactive]: https://github.com/juliangruber/level-reactive
+[level-read-stream]: https://github.com/Level/read-stream
+
[level-repair]: https://github.com/kesla/level-repair
[level-replicate]: https://github.com/dominictarr/level-replicate
@@ -2428,6 +2513,8 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[level-transactions]: https://github.com/cshum/level-transactions
+[level-transcoder]: https://github.com/Level/transcoder
+
[level-tree]: https://github.com/calvinmetcalf/level-tree
[level-tree-index]: https://github.com/biobricks/level-tree-index
@@ -2448,6 +2535,8 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[level-vinyl]: https://github.com/vweevers/level-vinyl
+[level-web-stream]: https://github.com/Level/web-stream
+
[level-write-stream]: https://github.com/Raynos/level-write-stream
[level-writestream]: https://github.com/pgte/level-writestream
@@ -2524,6 +2613,8 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[ltgt-to-interval]: https://github.com/juliangruber/ltgt-to-interval
+[many-level]: https://github.com/Level/many-level
+
[map-reduce]: https://github.com/dominictarr/map-reduce
[map-reduce-chained]: https://github.com/ryanramage/map-reduce-chained
@@ -2534,6 +2625,8 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[memdown]: https://github.com/Level/memdown
+[memory-level]: https://github.com/Level/memory-level
+
[merkle-dag]: https://github.com/mafintosh/merkle-dag
[merkle-patricia-tree]: https://github.com/ethereumjs/merkle-patricia-tree
@@ -2578,6 +2671,8 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[range-index]: https://github.com/kordon/range
+[rave-level]: https://github.com/Level/rave-level
+
[react-native-leveldown]: https://github.com/andymatuschak/react-native-leveldown
[redisdown]: https://github.com/hmalphettes/redisdown
@@ -2616,6 +2711,4 @@ See the [Contribution Guide](https://github.com/Level/community/blob/master/CONT
[tsd]: https://github.com/hij1nx/tsd
-[vertical]: https://github.com/zy445566/vertical
-
[webpack-starter]: https://github.com/Level/webpack-starter
diff --git a/modules/bundles.json b/modules/bundles.json
deleted file mode 100644
index 290bee9..0000000
--- a/modules/bundles.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "title": "Bundles",
- "description": [
- "Convenience modules that bundle [a store](#stores) with [levelup] and [encoding-down]."
- ],
- "compatibility": [{
- "package": "levelup",
- "via": "level-packager"
- }],
- "modules": {
- "level": {
- "github": "Level/level",
- "description": [
- "Bundle for [leveldown] and [level-js].",
- "Main entry point for beginners."
- ],
- "copyrightYear": 2013,
- "author": "Rod Vagg"
- },
- "level-mem": {
- "github": "Level/level-mem",
- "description": "Bundle for [memdown].",
- "copyrightYear": 2012,
- "author": null
- },
- "level-rocksdb": {
- "github": "Level/level-rocksdb",
- "description": "Bundle for [rocksdb].",
- "copyrightYear": 2013,
- "author": null
- },
- "level-hyper": {
- "github": "Level/level-hyper",
- "description": "Bundle for [leveldown-hyper].",
- "copyrightYear": 2012,
- "author": null
- },
- "level-indexed": {
- "github": "kapetan/level-indexed",
- "description": [
- "Bundle for [indexeddown].",
- "Alternative to [level]."
- ]
- }
- }
-}
diff --git a/modules/core.json b/modules/core.json
index 3958125..c889cb2 100644
--- a/modules/core.json
+++ b/modules/core.json
@@ -1,32 +1,10 @@
{
"title": "Core",
"modules": {
- "levelup": {
- "github": "Level/levelup",
- "description": [
- "The glue that holds everything together.",
- "Use this when you need a [custom or swappable store](#stores)."
- ],
- "copyrightYear": 2012,
- "author": null
- },
- "abstract-leveldown": {
- "github": "Level/abstract-leveldown",
- "description": [
- "An abstract prototype matching the [leveldown] API.",
- "Use this to implement your own store."
- ],
- "copyrightYear": 2013,
- "author": "Rod Vagg"
- },
- "level-packager": {
- "github": "Level/packager",
- "description": [
- "Package helper to export [a bundle](#bundles).",
- "Use this to create a new `level-*` bundle."
- ],
- "copyrightYear": 2013,
- "author": null
+ "abstract-level": {
+ "github": "Level/abstract-level",
+ "description": "Abstract class for a lexicographically sorted key-value database.",
+ "timeless": true
}
}
}
diff --git a/modules/databases.json b/modules/databases.json
index 5883477..d30f95c 100644
--- a/modules/databases.json
+++ b/modules/databases.json
@@ -12,30 +12,6 @@
"url": "http://pouchdb.com/",
"description": "PouchDB allows you to store and query data offline and then sync with CouchDB when online. For Node, browser and mobile."
},
- "couchup": {
- "github": "mikeal/couchup",
- "description": [
- "A CouchDB implementation on top of [levelup]."
- ]
- },
- "firedup": {
- "github": "eugeneware/firedup",
- "description": [
- "A node.js implementation of firebase based on [levelup]."
- ]
- },
- "len": {
- "github": "binocarlos/len",
- "description": [
- "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": {
- "github": "binocarlos/lem",
- "description": [
- "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": {
"github": "mcollina/node-levelgraph",
"description": [
@@ -54,88 +30,11 @@
"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": {
- "github": "mikeal/pushdb",
- "description": [
- "A programmable database with document storage and unique indexing capabilities."
- ]
- },
"search-index": {
"github": "fergiemcdowall/search-index",
"description": [
"A persistent full text search engine for browser and Node.js."
]
- },
- "tacodb": {
- "github": "dominictarr/tacodb",
- "description": [
- "A responsive, Node.js-style database ideal for realtime data. Highly modular and adaptable, allowing extension with the [Level][level-org] ecosystem."
- ]
- },
- "timestreamdb": {
- "github": "brycebaril/timestreamdb",
- "description": [
- "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."
- ]
- },
- "@nano-sql/core": {
- "github": "ClickSimply/Nano-SQL",
- "description": [
- "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": {
- "github": "zy445566/vertical",
- "description": [
- "LevelDB distributed, Server and Client!"
- ]
- },
- "flash-store": {
- "github": "zixia/flash-store",
- "description": [
- "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": {
- "github": "smallhelm/level-fact-base",
- "description": [
- "Store immutable facts and query them with datalog."
- ]
- },
- "dulcimer": {
- "github": "fritzy/dulcimer",
- "description": "Define JSON models and manage indexes, children, foreign keys and much more."
- },
- "levi": {
- "github": "cshum/levi",
- "description": "Stream based full-text search for Node.js and browser using [levelup]."
- },
- "level-mongo": {
- "github": "simon-p-r/level-mongo",
- "description": "MongoDB-like database backed by LevelDB."
- },
- "level-orm": {
- "github": "eugeneware/level-orm",
- "description": "Simple ORM built on [levelup]."
- },
- "level-lively": {
- "github": "eugeneware/level-lively",
- "description": "[levelup] implementation of [LivelyDb](https://github.com/eugeneware/livelydb) for doing real-time data binding of a database with local javascript objects."
- },
- "kwdb": {
- "github": "KsRyY/kwdb",
- "description": "REST wrapper for [levelup]."
- },
- "level-restful": {
- "github": "karissa/level-restful",
- "description": "REST wrapper for [levelup], as an extension to [level-orm]."
- },
- "level-rest": {
- "github": "shama/level-rest",
- "description": [
- "REST wrapper for [levelup].",
- "NB. Not compatible with latest [levelup]."
- ]
}
}
}
diff --git a/modules/encodings.js b/modules/encodings.js
new file mode 100644
index 0000000..8b9fbac
--- /dev/null
+++ b/modules/encodings.js
@@ -0,0 +1,9 @@
+// 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')
diff --git a/modules/encodings.json b/modules/encodings.json
index 1e98465..853330e 100644
--- a/modules/encodings.json
+++ b/modules/encodings.json
@@ -1,10 +1,16 @@
{
"title": "Encodings",
- "description": "Custom [level-codec] compatible encodings for use with [encoding-down].",
+ "example": "encodings.js",
"modules": {
+ "protocol-buffers": {
+ "github": "mafintosh/protocol-buffers",
+ "description": "[Protocol Buffers](https://developers.google.com/protocol-buffers/) for Node.js. Compiled messages are valid as encodings.",
+ "timeless": true
+ },
"charwise": {
"github": "dominictarr/charwise",
- "description": "Encode/decode with same encoded sort order as [bytewise]."
+ "description": "Encode / decode with same encoded sort order as [bytewise].",
+ "timeless": true
},
"bytewise": {
"github": "deanlandolt/bytewise",
@@ -14,13 +20,10 @@
"NB. Use [charwise] if possible. Gives you almost everything `bytewise` does but much faster."
]
},
- "protocol-buffers": {
- "github": "mafintosh/protocol-buffers",
- "description": "[Protocol Buffers](https://developers.google.com/protocol-buffers/) for Node.js. Compiled messages are [level-codec] compatible encodings."
- },
"lexicographic-integer-encoding": {
"github": "vweevers/lexicographic-integer-encoding",
- "description": "Wraps [`lexicographic-integer`](https://github.com/substack/lexicographic-integer)."
+ "description": "Wraps [`lexicographic-integer`](https://github.com/substack/lexicographic-integer).",
+ "timeless": true
}
}
}
diff --git a/modules/hooks.json b/modules/hooks.json
deleted file mode 100644
index 92a9226..0000000
--- a/modules/hooks.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "title": "Hooks",
- "description": "Low-level utilities for hooking into a [levelup] instance.",
- "modules": {
- "level-events": {
- "github": "mafintosh/level-events",
- "description": "Get an event everytime something is written / read / deleted using [levelup]."
- },
- "level-hookdown": {
- "github": "hypermodules/level-hookdown",
- "description": "Simple [levelup] hooks."
- },
- "level-post": {
- "github": "dominictarr/level-post",
- "description": "Consistent post hooks for [levelup]."
- },
- "level-condition": {
- "github": "juliangruber/level-condition",
- "description": "Get notified when a condition is triggered inside a [levelup] instance."
- },
- "level-hooks": {
- "github": "dominictarr/level-hooks",
- "description": "Implements a hook mechanism that allows you to intercept `put`, `delete` and `batch` operations. You can then turn those operations into batches. Useful if you want to turn a `put` into an atomic batch for say an automatic map operation.
NB. Author recommends using [level-sublevel] instead of `level-hooks` directly. Note that [level-sublevel] is not maintained."
- }
- }
-}
diff --git a/modules/iterators.json b/modules/iterators.json
deleted file mode 100644
index 09eb634..0000000
--- a/modules/iterators.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "title": "Iterators",
- "description": "Modules that operate on [abstract-leveldown] iterators.",
- "modules": {
- "level-concat-iterator": {
- "github": "Level/concat-iterator",
- "description": "Concatenate items from an iterator into an array.",
- "copyrightYear": 2018,
- "author": null
- },
- "level-iterator-stream": {
- "github": "Level/iterator-stream",
- "description": [
- "Turn an [abstract-leveldown] iterator into a readable stream.",
- "Included in [levelup]."
- ],
- "copyrightYear": 2012,
- "author": null
- },
- "levelup-async-iterator": {
- "github": "MeirionHughes/levelup-async-iterator",
- "description": [
- "Add an `iterator()` method to [levelup] with [`Symbol.asyncIterator`](https://github.com/tc39/proposal-async-iteration).",
- "",
- "NB. Conflicts with [`iterator()`](https://github.com/Level/levelup/#iterator) added in `levelup@3.1.0`."
- ]
- },
- "level-iterator": {
- "github": "vweevers/level-iterator",
- "description": [
- "Decoding iterator for [levelup] instances. Wraps iterators like [level-iterator-stream] does.",
- "",
- "NB. Not compatible with `levelup` >= 2 due to encodings having moved out to [encoding-down]. PR welcome."
- ]
- }
- }
-}
diff --git a/modules/layers.json b/modules/layers.json
deleted file mode 100644
index c01a5a1..0000000
--- a/modules/layers.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "title": "Layers",
- "description": [
- "Modules that implement [abstract-leveldown] to wrap another [abstract-leveldown].",
- "This is the preferred extension point."
- ],
- "compatibility": ["abstract-leveldown"],
- "modules": {
- "encoding-down": {
- "github": "Level/encoding-down",
- "description": "Provides key/value encoding.",
- "copyrightYear": 2012,
- "author": null
- },
- "@adorsys/encrypt-down": {
- "github": "adorsys/encrypt-down",
- "description": "Provides encryption for values."
- },
- "deferred-leveldown": {
- "github": "Level/deferred-leveldown",
- "description": "Handles delayed-open. Built into [levelup].",
- "copyrightYear": 2013,
- "author": "Rod Vagg"
- },
- "level-cowdown": {
- "github": "substack/level-cowdown",
- "description": "Copy-on-write [abstract-leveldown] layer."
- },
- "abstract-stream-leveldown": {
- "github": "jed/abstract-stream-leveldown",
- "description": "A stream-based abstract prototype."
- }
- }
-}
diff --git a/modules/legacy.json b/modules/legacy.json
index 96ac55f..c55a74c 100644
--- a/modules/legacy.json
+++ b/modules/legacy.json
@@ -1,8 +1,603 @@
{
"title": "Legacy",
"description": "Modules that are deprecated, archived or superseded. Listed here for the historical record.",
- "dependencies": false,
"modules": {
+ "levelup": {
+ "github": "Level/levelup",
+ "description": "Wrapper for [abstract-leveldown] stores. Superseded by [abstract-level].",
+ "oldCategory": "core",
+ "copyrightYear": 2012,
+ "author": null
+ },
+ "abstract-leveldown": {
+ "github": "Level/abstract-leveldown",
+ "description": "An abstract prototype matching the [leveldown] API. Superseded by [abstract-level].",
+ "oldCategory": "core",
+ "copyrightYear": 2013,
+ "author": "Rod Vagg"
+ },
+ "level-mem": {
+ "github": "Level/level-mem",
+ "description": "Bundles [memdown] with [levelup] and [encoding-down]. Superseded by [memory-level].",
+ "oldCategory": "bundles",
+ "copyrightYear": 2012,
+ "author": null,
+ "compatibility": [{
+ "package": "levelup",
+ "via": "level-packager"
+ }]
+ },
+ "level-rocksdb": {
+ "github": "Level/level-rocksdb",
+ "description": "Bundles [rocksdb] with [levelup] and [encoding-down].",
+ "oldCategory": "bundles",
+ "copyrightYear": 2013,
+ "author": null,
+ "compatibility": [{
+ "package": "levelup",
+ "via": "level-packager"
+ }]
+ },
+ "level-hyper": {
+ "github": "Level/level-hyper",
+ "description": "Bundles [leveldown-hyper] with [levelup] and [encoding-down].",
+ "oldCategory": "bundles",
+ "copyrightYear": 2012,
+ "author": null,
+ "compatibility": [{
+ "package": "levelup",
+ "via": "level-packager"
+ }]
+ },
+ "level-indexed": {
+ "github": "kapetan/level-indexed",
+ "description": "Bundles [indexeddown] with [levelup] and [encoding-down].",
+ "oldCategory": "bundles",
+ "compatibility": [{
+ "package": "levelup",
+ "via": "level-packager"
+ }]
+ },
+ "leveldown": {
+ "github": "Level/leveldown",
+ "description": "An [abstract-leveldown] implementation backed by [LevelDB](https://github.com/google/leveldb). Superseded by [classic-level].",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2012,
+ "author": "Rod Vagg"
+ },
+ "memdown": {
+ "github": "Level/memdown",
+ "description": "An [abstract-leveldown] implementation backed by [in-memory RBTree](https://www.npmjs.com/package/functional-red-black-tree). Superseded by [memory-level].",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2013,
+ "author": "Rod Vagg"
+ },
+ "level-js": {
+ "github": "Level/level.js",
+ "description": "An [abstract-leveldown] implementation backed by [IndexedDB](https://developer.mozilla.org/en-US/docs/IndexedDB). Superseded by [browser-level].",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2012,
+ "author": "[Max Ogden](https://github.com/maxogden)"
+ },
+ "rocksdb": {
+ "github": "Level/rocksdb",
+ "description": "An [abstract-leveldown] implementation backed by [RocksDB](https://github.com/facebook/rocksdb/).",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2012,
+ "author": "Rod Vagg"
+ },
+ "leveldown-hyper": {
+ "github": "Level/leveldown-hyper",
+ "description": "An [abstract-leveldown] implementation backed by [HyperLevelDB](https://github.com/rescrv/HyperLevelDB).",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2012,
+ "author": null
+ },
+ "medeadown": {
+ "github": "kesla/medeadown",
+ "description": "An [abstract-leveldown] implementation backed by [medea](https://github.com/argo/medea).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "jsondown": {
+ "github": "toolness/jsondown",
+ "description": "An [abstract-leveldown] implementation backed by JSON on disk.",
+ "compatibility": [
+ {
+ "package": "abstract-leveldown",
+ "via": "memdown"
+ }
+ ]
+ },
+ "asyncstorage-down": {
+ "github": "tradle/asyncstorage-down",
+ "description": "An [abstract-leveldown] implementation backed by [AsyncStorage](https://facebook.github.io/react-native/docs/asyncstorage.html) (React Native).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "mongodown": {
+ "github": "watson/mongodown",
+ "description": "An [abstract-leveldown] implementation backed by [MongoDB](https://www.mongodb.com/).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "sqldown": {
+ "github": "calvinmetcalf/sqldown",
+ "description": "An [abstract-leveldown] implementation backed by [`sqlite3`](https://www.npmjs.com/package/sqlite3), [`pg`](https://www.npmjs.com/package/pg), [`mysql`](https://www.npmjs.com/package/mysql) or WebSQL.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "dynamo-down": {
+ "github": "jed/dynamo-down",
+ "description": "An [abstract-leveldown] implementation backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "azureleveldown": {
+ "github": "richorama/azureleveldown",
+ "description": "An [abstract-leveldown] implementation backed by Windows Azure Table Storage.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "fruitdown": {
+ "github": "nolanlawson/fruitdown",
+ "description": "An [abstract-leveldown] implementation backed by IndexedDB (Apple).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "localstorage-down": {
+ "github": "No9/localstorage-down",
+ "description": "An [abstract-leveldown] implementation backed by [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "riakdown": {
+ "github": "nlf/riakdown",
+ "description": "An [abstract-leveldown] implementation backed by [riakpbc](https://github.com/nlf/riakpbc).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "mysqldown": {
+ "github": "kesla/mysqldown",
+ "description": "An [abstract-leveldown] implementation backed by [MySQL](https://www.mysql.com/).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "redisdown": {
+ "github": "hmalphettes/redisdown",
+ "description": "An [abstract-leveldown] implementation backed by [Redis](https://redis.io/).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "leveldown-basho": {
+ "url": "https://www.npmjs.com/package/leveldown-basho",
+ "description": "An [abstract-leveldown] implementation backed by [Basho's LevelDB fork](https://github.com/basho/leveldb).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "sheet-down": {
+ "github": "jed/sheet-down",
+ "description": "An [abstract-leveldown] implementation backed by [Google Sheets](https://docs.google.com/spreadsheets).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "indexeddown": {
+ "github": "kapetan/indexeddown",
+ "description": "An [abstract-leveldown] implementation backed by IndexedDB.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "lmdb-leveldown": {
+ "github": "chrbala/lmdb-leveldown",
+ "description": "An [abstract-leveldown] implementation backed by LMDB.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "localdown": {
+ "github": "bhoriuchi/localdown",
+ "description": "An [abstract-leveldown] implementation backed by localStorage in Node.js.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "aerospike-leveldown": {
+ "github": "ProjectThor/aerospikedown",
+ "description": "An [abstract-leveldown] implementation backed by Aerospike.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "s3leveldown": {
+ "github": "loune/s3leveldown",
+ "description": "An [abstract-leveldown] implementation backed by [AWS S3](https://aws.amazon.com/s3/).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "gaiadown-ts": {
+ "github": "acidleroy/gaiadown-ts",
+ "description": "An [abstract-leveldown] implementation backed by [Gaia](https://github.com/blockstack/gaia).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "dynamodb-leveldown": {
+ "github": "GioCirque/DynamoDb-LevelDown",
+ "description": "An [abstract-leveldown] implementation backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb/).",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2019,
+ "author": "Gio Palacino"
+ },
+ "localforagedown": {
+ "github": "KsRyY/localforagedown",
+ "description": "An [abstract-leveldown] implementation backed by [localForage](https://github.com/localForage/localForage/).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "react-native-leveldown": {
+ "github": "andymatuschak/react-native-leveldown",
+ "description": "An [abstract-leveldown] implementation backed by [LevelDB](https://github.com/google/leveldb) (React Native).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "networked-hyperbeedown": {
+ "github": "RangerMauve/networked-hyperbeedown",
+ "description": "An [abstract-leveldown] implementation backed by [Hyperbee](https://github.com/hypercore-protocol/hyperbee/).",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "encoding-down": {
+ "github": "Level/encoding-down",
+ "description": "An [abstract-leveldown] layer that provides key/value encoding. Superseded by [abstract-level].",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2012,
+ "author": null
+ },
+ "@adorsys/encrypt-down": {
+ "github": "adorsys/encrypt-down",
+ "description": "An [abstract-leveldown] layer that provides encryption for values.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "deferred-leveldown": {
+ "github": "Level/deferred-leveldown",
+ "description": "An [abstract-leveldown] layer that handles delayed-open. Built into [levelup]. Both are superseded by [abstract-level].",
+ "compatibility": ["abstract-leveldown"],
+ "copyrightYear": 2013,
+ "author": "Rod Vagg"
+ },
+ "level-cowdown": {
+ "github": "substack/level-cowdown",
+ "description": "Copy-on-write [abstract-leveldown] layer.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "abstract-stream-leveldown": {
+ "github": "jed/abstract-stream-leveldown",
+ "description": "A stream-based [abstract-leveldown] prototype.",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "level-iterator-stream": {
+ "github": "Level/iterator-stream",
+ "description": [
+ "Turn an [abstract-leveldown] iterator into a readable stream. Included in [levelup]. For [abstract-level] databases, this is superseded by [level-read-stream]."
+ ],
+ "copyrightYear": 2012,
+ "author": null
+ },
+ "level-batch-stream": {
+ "github": "jcrugzz/level-batch-stream",
+ "description": "Streams2 writable stream for [levelup]."
+ },
+ "level-writestream": {
+ "github": "pgte/level-writestream",
+ "description": "Streams2 writable stream for [levelup]."
+ },
+ "level-write-stream": {
+ "github": "Raynos/level-write-stream",
+ "description": "Streams1 writable stream for [levelup] or [abstract-leveldown]."
+ },
+ "level-livefeed": {
+ "github": "Raynos/level-livefeed",
+ "description": "A live query of a range in [levelup]. Similar to [level-live-stream] but with a streams2 interface."
+ },
+ "level-range": {
+ "github": "juliangruber/level-range",
+ "description": "Find all K/V-pairs prefixed by a certain key. Streams1."
+ },
+ "level-cursor": {
+ "github": "kordon/cursor",
+ "description": "A stream \"cursor\" to iterate through a ReadStream / KeyStream / ValueStream."
+ },
+ "level-live": {
+ "github": "voltraco/level-live",
+ "description": [
+ "Simple, light and correct live read stream implementation.",
+ "",
+ "NB. Uses an undefined streams version, as well as [ltgt] which is not compatible with [abstract-level]."
+ ]
+ },
+ "level-glob": {
+ "github": "vweevers/level-glob",
+ "description": "A streams2 read stream filtered and ordered by glob patterns. Keys in the database should be unix-like paths."
+ },
+ "pull-level": {
+ "github": "dominictarr/pull-level",
+ "description": "[`pull-stream`](https://github.com/pull-stream/pull-stream) interface to [levelup] with read streams, write streams and realtime (tail/live) reads. Not compatible with [abstract-level]."
+ },
+ "level-live-stream": {
+ "github": "dominictarr/level-live-stream",
+ "description": "Like `db.createReadStream()` except it's live / tailable. i.e. instead of ending, it will stay open and stream changes to the database as they are inserted. Not compatible with [abstract-level]."
+ },
+ "level-concat-iterator": {
+ "github": "Level/concat-iterator",
+ "description": "Concatenate items from an [abstract-leveldown] iterator into an array. On [abstract-level] databases, this is superseded by `iterator.all()`.",
+ "copyrightYear": 2018,
+ "author": null
+ },
+ "subleveldown": {
+ "github": "Level/subleveldown",
+ "compatibility": ["abstract-leveldown", "levelup"],
+ "description": "Split a [levelup] database into sublevels with their own keyspace, encoding and events. Superseded by [abstract-level].",
+ "copyrightYear": 2014,
+ "author": "[Mathias Buus](https://github.com/mafintosh)"
+ },
+ "level-temp": {
+ "github": "mafintosh/level-temp",
+ "description": "Create a temporary [subleveldown] sublevel that is guaranteed to be empty."
+ },
+ "level-mount": {
+ "github": "u8sand/level-mount",
+ "description": "Mount multiple [abstract-leveldown] stores by key prefix onto a single store. Can be used with [subleveldown].",
+ "compatibility": ["abstract-leveldown"]
+ },
+ "bytespace": {
+ "github": "deanlandolt/bytespace",
+ "description": [
+ "Keypath subspaces prefixed with [bytewise] tuples. Similar to [level-sublevel].",
+ "",
+ "NB. [bytewise] - and thus [bytespace] - can be slow. Consider using the [charwise] encoding instead."
+ ]
+ },
+ "level-sublevel": {
+ "github": "dominictarr/level-sublevel",
+ "compatibility": ["levelup"],
+ "description": [
+ "Adds the ability to create subsections with the same API as [levelup], but only write/read to a prefixed section, or bucket, of the key-space. Each section also has [level-hooks] installed.",
+ "",
+ "NB. No longer maintained. Instead use [subleveldown] for [levelup], or the built-in sublevels of [abstract-level]."
+ ]
+ },
+ "sublevel-prefixer": {
+ "github": "mafintosh/sublevel-prefixer",
+ "description": "Utility to prefix a key with a sublevel prefix."
+ },
+ "level-sublevel-stream": {
+ "github": "juliangruber/level-sublevel-stream",
+ "description": [
+ "Find [level-sublevel] sublevels, not requiring them to be in memory already."
+ ]
+ },
+ "level-subtree": {
+ "github": "hij1nx/level-subtree",
+ "description": [
+ "Generate a tree from [level-sublevel] sublevels, useful when there is no manifest."
+ ]
+ },
+ "level-superlevel": {
+ "github": "randymized/level-superlevel",
+ "description": [
+ "Superlevel adds a \"super\" level that allows accessing the entire database, discovering [level-sublevel] sublevels and browsing the database without knowledge of the sublevel structure."
+ ]
+ },
+ "level-subkey": {
+ "github": "snowyu/level-subkey",
+ "description": [
+ "Use path-like keys to separate sections of [levelup], with hooks. Adapted from [level-sublevel]."
+ ]
+ },
+ "level-mirror": {
+ "github": "juliangruber/level-mirror",
+ "description": "Mirror and optionally transform data from one [level-sublevel] sublevel into another."
+ },
+ "couchup": {
+ "github": "mikeal/couchup",
+ "description": [
+ "A CouchDB implementation on top of [levelup]."
+ ]
+ },
+ "firedup": {
+ "github": "eugeneware/firedup",
+ "description": [
+ "A node.js implementation of firebase based on [levelup]."
+ ]
+ },
+ "len": {
+ "github": "binocarlos/len",
+ "description": [
+ "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": {
+ "github": "binocarlos/lem",
+ "description": [
+ "Lem is a telemetry storage database using LevelDB. Keys are indexed by timestamp and you can read values in-between 2 points in time."
+ ]
+ },
+ "pushdb": {
+ "github": "mikeal/pushdb",
+ "description": [
+ "A programmable database with document storage and unique indexing capabilities."
+ ]
+ },
+ "tacodb": {
+ "github": "dominictarr/tacodb",
+ "description": [
+ "A responsive, Node.js-style database ideal for realtime data. Highly modular and adaptable, allowing extension with the [Level][level-org] ecosystem."
+ ]
+ },
+ "timestreamdb": {
+ "github": "brycebaril/timestreamdb",
+ "description": [
+ "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."
+ ]
+ },
+ "level-orm": {
+ "github": "eugeneware/level-orm",
+ "description": "Simple ORM built on [levelup]."
+ },
+ "level-restful": {
+ "github": "karissa/level-restful",
+ "description": "REST wrapper for [levelup], as an extension to [level-orm]."
+ },
+ "level-rest": {
+ "github": "shama/level-rest",
+ "description": "REST wrapper for [levelup]. Not compatible with latest [levelup]."
+ },
+ "level-lively": {
+ "github": "eugeneware/level-lively",
+ "description": "[levelup] implementation of [LivelyDb](https://github.com/eugeneware/livelydb) for doing real-time data binding of a database with local javascript objects."
+ },
+ "level-mongo": {
+ "github": "simon-p-r/level-mongo",
+ "description": "MongoDB-like database backed by LevelDB.",
+ "compatibility": [{
+ "package": "leveldown",
+ "via": "level"
+ }]
+ },
+ "levi": {
+ "github": "cshum/levi",
+ "description": "Stream based full-text search for Node.js and browser using [levelup]."
+ },
+ "dulcimer": {
+ "github": "fritzy/dulcimer",
+ "description": "Define JSON models and manage indexes, children, foreign keys and much more."
+ },
+ "level-fact-base": {
+ "github": "smallhelm/level-fact-base",
+ "description": [
+ "Store immutable facts and query them with datalog."
+ ]
+ },
+ "ltgt": {
+ "github": "dominictarr/ltgt",
+ "description": "Tool belt to find lower or upper bounds, compare and filter keys and more. Incompatible with [abstract-level], because in [abstract-level] `gte` and `lte` range options take precedence over `gt` and `lt` respectively."
+ },
+ "level-option-wrap": {
+ "github": "substack/level-option-wrap",
+ "description": "Wrap `ltgt` options with functions. Expose range options without leaking information about your internal key representations."
+ },
+ "interval-to-ltgt": {
+ "github": "nowsecure/interval-to-ltgt",
+ "description": "Convert an interval string to an `ltgt` object. This is the counterpart to [ltgt-to-interval]."
+ },
+ "ltgt-to-interval": {
+ "github": "juliangruber/ltgt-to-interval",
+ "description": "Convert an `ltgt` object to an interval string. This is the counterpart to [interval-to-ltgt]."
+ },
+ "range-emitter": {
+ "github": "jameskyburz/range-emitter",
+ "description": "Range emitter. Publish keys and subscribe to ranges."
+ },
+ "level-codec": {
+ "github": "Level/codec",
+ "description": "Encode keys, values and ltgte options. Used in [encoding-down]. Superseded by [level-transcoder].",
+ "copyrightYear": 2012,
+ "author": null
+ },
+ "level-errors": {
+ "github": "Level/errors",
+ "description": "Error types for [levelup]. Superseded by [abstract-level].",
+ "copyrightYear": 2012,
+ "author": null
+ },
+ "level-packager": {
+ "github": "Level/packager",
+ "description": "Legacy package helper to bundle an [abstract-leveldown] store with [levelup] and [encoding-down].",
+ "oldCategory": "core",
+ "copyrightYear": 2013,
+ "author": null
+ },
+ "multileveldown": {
+ "github": "mafintosh/multileveldown",
+ "description": "Share a [levelup] instance across multiple processes or over the network. An alternative to [multilevel], implemented as [abstract-leveldown] stores with seamless retry support. Superseded by [many-level].",
+ "oldCategory": "shared-access"
+ },
+ "level-party": {
+ "github": "substack/level-party",
+ "description": "Open a LevelDB ([leveldown]) handle multiple times, transparently upgrading to [multileveldown] when more than 1 process try to use the same LevelDB data directory at once and re-electing a new master when the primary unix socket (or named pipe) goes down. Superseded by [rave-level].",
+ "oldCategory": "shared-access"
+ },
+ "multilevel": {
+ "github": "juliangruber/multilevel",
+ "description": "Share a [levelup] instance over the network.",
+ "oldCategory": "shared-access"
+ },
+ "multilevel-http": {
+ "github": "juliangruber/multilevel-http",
+ "description": "Expose a [levelup] instance via HTTP.",
+ "oldCategory": "shared-access"
+ },
+ "level-manifest": {
+ "github": "dominictarr/level-manifest",
+ "description": "Describe the functions that [multilevel] should provide access to on the client.",
+ "oldCategory": "shared-access"
+ },
+ "level-sandbox": {
+ "github": "juliangruber/level-sandbox",
+ "description": "A sandbox for hosting [multilevel] enabled databases.",
+ "oldCategory": "shared-access"
+ },
+ "level-range-emitter": {
+ "github": "jameskyburz/level-range-emitter",
+ "description": "Client and server using [multileveldown], [range-emitter] and [ltgt].",
+ "oldCategory": "shared-access"
+ },
+ "leveldb-mount": {
+ "github": "jameskyburz/leveldb-mount",
+ "description": "LevelDB server and client with optional client-side REPL. Built with [subleveldown] and [multileveldown]."
+ },
+ "level2riak": {
+ "github": "fritzy/level2git",
+ "description": "A network service that allows you to connect to a Riak database over HTTP."
+ },
+ "level-cluster-get": {
+ "github": "kesla/level-cluster-get",
+ "description": "Given a key, get all values from a cluster of [multilevel] servers."
+ },
+ "level-connect": {
+ "github": "mattstyles/level-connect",
+ "description": "Connect to a [level-party] and [level-sublevel] enabled LevelDB over HTTP."
+ },
+ "level-pubsub": {
+ "github": "hij1nx/level-pubsub",
+ "description": "PubSub with server and client on top of [levelup]."
+ },
+ "level-query": {
+ "github": "substack/level-query",
+ "description": "Expose a [level-sublevel] database over HTTP, searchable with query strings."
+ },
+ "level-over-http": {
+ "github": "lakowske/level-over-http",
+ "description": "Another solution to expose [levelup] over HTTP."
+ },
+ "level-rpc": {
+ "github": "juliangruber/level-rpc",
+ "description": "Fast RPC mechanism for [levelup]. Intended as binary-compatible alternative to [multilevel]."
+ },
+ "level-events": {
+ "github": "mafintosh/level-events",
+ "description": "Get an event everytime something is written / read / deleted using [levelup].",
+ "oldCategory": "hooks"
+ },
+ "level-hookdown": {
+ "github": "hypermodules/level-hookdown",
+ "description": "Simple [levelup] hooks.",
+ "oldCategory": "hooks"
+ },
+ "level-post": {
+ "github": "dominictarr/level-post",
+ "description": "Consistent post hooks for [levelup].",
+ "oldCategory": "hooks"
+ },
+ "level-condition": {
+ "github": "juliangruber/level-condition",
+ "description": "Get notified when a condition is triggered inside a [levelup] instance.",
+ "oldCategory": "hooks"
+ },
+ "level-hooks": {
+ "github": "dominictarr/level-hooks",
+ "description": "Implements a hook mechanism that allows you to intercept `put`, `delete` and `batch` operations. You can then turn those operations into batches. Useful if you want to turn a `put` into an atomic batch for say an automatic map operation.
NB. Author recommends using [level-sublevel] instead of `level-hooks` directly. Note that [level-sublevel] is not maintained.
Both are now (anno 2024) superseded by [abstract-level] which has builtin sublevels and hooks.",
+ "oldCategory": "hooks"
+ },
+ "levelup-async-iterator": {
+ "github": "MeirionHughes/levelup-async-iterator",
+ "description": [
+ "Add an `iterator()` method to [levelup] with [`Symbol.asyncIterator`](https://github.com/tc39/proposal-async-iteration).",
+ "Superseded by builtin `Symbol.asyncIterator` support on [abstract-leveldown] iterators."
+ ]
+ },
+ "level-iterator": {
+ "github": "vweevers/level-iterator",
+ "description": [
+ "Decoding iterator for [levelup] instances. Wraps iterators like [level-iterator-stream] does.",
+ "",
+ "Superseded by [encoding-down] and later [abstract-level]."
+ ]
+ },
"level-delete-stream": {
"github": "juliangruber/level-delete-stream",
"description": "A streams1 deleteStream for [levelup]. Superseded by `db.clear()`."
diff --git a/modules/ltgt.json b/modules/ltgt.json
deleted file mode 100644
index 621aefc..0000000
--- a/modules/ltgt.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "title": "Range Options",
- "description": "Utilities for working with range options, known as ltgt(e), common to [levelup] streams and [abstract-leveldown] iterators.",
- "modules": {
- "ltgt": {
- "github": "dominictarr/ltgt",
- "description": "Tool belt to find lower or upper bounds, compare and filter keys and more."
- },
- "level-option-wrap": {
- "github": "substack/level-option-wrap",
- "description": "Wrap `ltgt` options with functions. Expose range options without leaking information about your internal key representations."
- },
- "interval-to-ltgt": {
- "github": "nowsecure/interval-to-ltgt",
- "description": "Convert an interval string to an `ltgt` object. This is the counterpart to [ltgt-to-interval]."
- },
- "ltgt-to-interval": {
- "github": "juliangruber/ltgt-to-interval",
- "description": "Convert an `ltgt` object to an interval string. This is the counterpart to [interval-to-ltgt]."
- },
- "range-emitter": {
- "github": "jameskyburz/range-emitter",
- "description": "Range emitter. Publish keys and subscribe to ranges."
- }
- }
-}
diff --git a/modules/processing.json b/modules/processing.json
index 62e7fba..89b0507 100644
--- a/modules/processing.json
+++ b/modules/processing.json
@@ -1,6 +1,6 @@
{
"title": "Processing",
- "description": "Modules for indexing, alternative forms of querying data, MapReduce models and other forms of data processing.",
+ "description": "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] yet.",
"modules": {
"level-auto-index": {
"github": "hypermodules/level-auto-index",
diff --git a/modules/shared-access.json b/modules/shared-access.json
index 0f74ce8..6c0cbce 100644
--- a/modules/shared-access.json
+++ b/modules/shared-access.json
@@ -1,69 +1,18 @@
{
"title": "Shared Access",
"modules": {
- "multileveldown": {
- "github": "mafintosh/multileveldown",
- "description": "Share a [levelup] instance across multiple processes or over the network. An alternative to [multilevel], implemented as [abstract-leveldown] stores with seamless retry support."
- },
- "level-party": {
- "github": "substack/level-party",
- "description": "Open a LevelDB ([leveldown]) handle multiple times, transparently upgrading to [multileveldown] when more than 1 process try to use the same LevelDB data directory at once and re-electing a new master when the primary unix socket (or named pipe) goes down."
- },
- "cluster-levelup": {
- "github": "chiguireitor/cluster-levelup",
- "description": "Wrap a [levelup] instance for [`cluster`](https://nodejs.org/api/cluster.html) usage among multiple processes."
- },
- "multilevel": {
- "github": "juliangruber/multilevel",
- "description": "Share a [levelup] instance over the network."
- },
- "multilevel-http": {
- "github": "juliangruber/multilevel-http",
- "description": "Expose a [levelup] instance via HTTP."
- },
- "level-range-emitter": {
- "github": "jameskyburz/level-range-emitter",
- "description": "Client and server using [multileveldown], [range-emitter] and [ltgt]."
- },
- "level-manifest": {
- "github": "dominictarr/level-manifest",
- "description": "Describe the functions that [multilevel] should provide access to on the client."
- },
- "level-cluster-get": {
- "github": "kesla/level-cluster-get",
- "description": "Given a key, get all values from a cluster of [multilevel] servers."
- },
- "level-connect": {
- "github": "mattstyles/level-connect",
- "description": "Connect to a [level-party] and [level-sublevel] enabled LevelDB over HTTP."
- },
- "level-sandbox": {
- "github": "juliangruber/level-sandbox",
- "description": "A sandbox for hosting [multilevel] enabled databases."
- },
- "level2riak": {
- "github": "fritzy/level2git",
- "description": "A network service that allows you to connect to a Riak database over HTTP."
- },
- "leveldb-mount": {
- "github": "jameskyburz/leveldb-mount",
- "description": "LevelDB server and client with optional client-side REPL. Built with [subleveldown] and [multileveldown]."
- },
- "level-pubsub": {
- "github": "hij1nx/level-pubsub",
- "description": "PubSub with server and client on top of [levelup]."
- },
- "level-query": {
- "github": "substack/level-query",
- "description": "Expose a [level-sublevel] database over HTTP, searchable with query strings."
- },
- "level-over-http": {
- "github": "lakowske/level-over-http",
- "description": "Another solution to expose [levelup] over HTTP."
- },
- "level-rpc": {
- "github": "juliangruber/level-rpc",
- "description": "Fast RPC mechanism for [levelup]. Intended as binary-compatible alternative to [multilevel]."
+ "many-level": {
+ "github": "Level/many-level",
+ "description": "Share an [abstract-level] database over the network or other kind of stream. Supersedes [multileveldown] and [multilevel].",
+ "compatibility": ["abstract-level"]
+ },
+ "rave-level": {
+ "github": "Level/rave-level",
+ "description": "Use a LevelDB database from multiple processes with seamless failover. Supersedes [level-party].",
+ "compatibility": [{
+ "package": "abstract-level",
+ "via": "many-level"
+ }]
}
}
}
diff --git a/modules/storage.json b/modules/storage.json
new file mode 100644
index 0000000..dcb8653
--- /dev/null
+++ b/modules/storage.json
@@ -0,0 +1,38 @@
+{
+ "title": "Storage",
+ "description": "Modules that implement [abstract-level].",
+ "modules": {
+ "level": {
+ "github": "Level/level",
+ "compatibility": [{
+ "package": "abstract-level",
+ "via": "classic-level"
+ }],
+ "description": [
+ "Universal [abstract-level] database for Node.js and browsers.",
+ "Main entry point for beginners."
+ ],
+ "timeless": true,
+ "copyrightYear": 2013,
+ "author": "Rod Vagg"
+ },
+ "classic-level": {
+ "github": "Level/classic-level",
+ "description": "An [abstract-level] database backed by LevelDB.",
+ "compatibility": ["abstract-level"],
+ "timeless": true
+ },
+ "browser-level": {
+ "github": "Level/browser-level",
+ "description": "An [abstract-level] database for browsers, backed by IndexedDB.",
+ "compatibility": ["abstract-level"],
+ "timeless": true
+ },
+ "memory-level": {
+ "github": "Level/memory-level",
+ "description": "In-memory [abstract-level] database for Node.js and browsers.",
+ "compatibility": ["abstract-level"],
+ "timeless": true
+ }
+ }
+}
diff --git a/modules/stores.json b/modules/stores.json
deleted file mode 100644
index b8612a3..0000000
--- a/modules/stores.json
+++ /dev/null
@@ -1,141 +0,0 @@
-{
- "title": "Stores",
- "description": "Modules that implement [abstract-leveldown] as storage for [levelup].",
- "compatibility": ["abstract-leveldown"],
- "modules": {
- "leveldown": {
- "github": "Level/leveldown",
- "description": "Backed by [LevelDB](https://github.com/google/leveldb).",
- "copyrightYear": 2012,
- "author": "Rod Vagg"
- },
- "memdown": {
- "github": "Level/memdown",
- "description": "Backed by [in-memory RBTree](https://www.npmjs.com/package/functional-red-black-tree).",
- "copyrightYear": 2013,
- "author": "Rod Vagg"
- },
- "level-js": {
- "github": "Level/level.js",
- "description": "Backed by [IndexedDB](https://developer.mozilla.org/en-US/docs/IndexedDB).",
- "copyrightYear": 2012,
- "author": "[Max Ogden](https://github.com/maxogden)"
- },
- "rocksdb": {
- "github": "Level/rocksdb",
- "description": "Backed by [RocksDB](https://github.com/facebook/rocksdb/).",
- "copyrightYear": 2012,
- "author": "Rod Vagg"
- },
- "leveldown-hyper": {
- "github": "Level/leveldown-hyper",
- "description": "Backed by [HyperLevelDB](https://github.com/rescrv/HyperLevelDB).",
- "copyrightYear": 2012,
- "author": null
- },
- "medeadown": {
- "github": "kesla/medeadown",
- "description": "Backed by [medea](https://github.com/argo/medea)."
- },
- "jsondown": {
- "github": "toolness/jsondown",
- "description": "Backed by JSON on disk",
- "compatibility": [
- {
- "package": "abstract-leveldown",
- "via": "memdown"
- }
- ]
- },
- "asyncstorage-down": {
- "github": "tradle/asyncstorage-down",
- "description": "Backed by [AsyncStorage](https://facebook.github.io/react-native/docs/asyncstorage.html) (React Native)."
- },
- "mongodown": {
- "github": "watson/mongodown",
- "description": "Backed by [MongoDB](https://www.mongodb.com/)."
- },
- "sqldown": {
- "github": "calvinmetcalf/sqldown",
- "description": "Backed by [`sqlite3`](https://www.npmjs.com/package/sqlite3), [`pg`](https://www.npmjs.com/package/pg), [`mysql`](https://www.npmjs.com/package/mysql) or WebSQL."
- },
- "dynamo-down": {
- "github": "jed/dynamo-down",
- "description": "Backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb)."
- },
- "azureleveldown": {
- "github": "richorama/azureleveldown",
- "description": "Backed by Windows Azure Table Storage."
- },
- "fruitdown": {
- "github": "nolanlawson/fruitdown",
- "description": "Backed by IndexedDB (Apple)."
- },
- "localstorage-down": {
- "github": "No9/localstorage-down",
- "description": "Backed by [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)."
- },
- "riakdown": {
- "github": "nlf/riakdown",
- "description": "Backed by [riakpbc](https://github.com/nlf/riakpbc)."
- },
- "mysqldown": {
- "github": "kesla/mysqldown",
- "description": "Backed by [MySQL](https://www.mysql.com/)."
- },
- "redisdown": {
- "github": "hmalphettes/redisdown",
- "description": "Backed by [Redis](https://redis.io/)."
- },
- "leveldown-basho": {
- "url": "https://www.npmjs.com/package/leveldown-basho",
- "description": "Backed by [Basho's LevelDB fork](https://github.com/basho/leveldb)."
- },
- "sheet-down": {
- "github": "jed/sheet-down",
- "description": "Backed by [Google Sheets](https://docs.google.com/spreadsheets)."
- },
- "indexeddown": {
- "github": "kapetan/indexeddown",
- "description": "Backed by IndexedDB."
- },
- "lmdb-leveldown": {
- "github": "chrbala/lmdb-leveldown",
- "description": "Backed by LMDB."
- },
- "localdown": {
- "github": "bhoriuchi/localdown",
- "description": "Backed by localStorage in Node.js."
- },
- "aerospike-leveldown": {
- "github": "ProjectThor/aerospikedown",
- "description": "Backed by Aerospike."
- },
- "s3leveldown": {
- "github": "loune/s3leveldown",
- "description": "Backed by [AWS S3](https://aws.amazon.com/s3/)."
- },
- "gaiadown-ts": {
- "github": "acidleroy/gaiadown-ts",
- "description": "Backed by [Gaia](https://github.com/blockstack/gaia)."
- },
- "dynamodb-leveldown": {
- "github": "GioCirque/DynamoDb-LevelDown",
- "description": "Backed by [AWS DynamoDB](http://aws.amazon.com/dynamodb/).",
- "copyrightYear": 2019,
- "author": "Gio Palacino"
- },
- "localforagedown": {
- "github": "KsRyY/localforagedown",
- "description": "Backed by [localForage](https://github.com/localForage/localForage/)."
- },
- "react-native-leveldown": {
- "github": "andymatuschak/react-native-leveldown",
- "description": "Backed by [LevelDB](https://github.com/google/leveldb) (React Native)."
- },
- "networked-hyperbeedown": {
- "github": "RangerMauve/networked-hyperbeedown",
- "description": "Backed by [Hyperbee](https://github.com/hypercore-protocol/hyperbee/)."
- }
- }
-}
diff --git a/modules/streams.json b/modules/streams.json
index 9476027..94a6abc 100644
--- a/modules/streams.json
+++ b/modules/streams.json
@@ -1,56 +1,25 @@
{
"title": "Streams",
- "description": "[Node.js stream](https://nodejs.org/api/stream.html) or [`pull-stream`](https://github.com/pull-stream/pull-stream) implementations for reading and writing data from/to [levelup].",
+ "description": "[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.",
"modules": {
- "level-ws": {
- "github": "Level/level-ws",
- "description": "General-case, streams3 writable stream for [levelup].",
- "copyrightYear": 2012,
- "author": null
- },
- "level-batch-stream": {
- "github": "jcrugzz/level-batch-stream",
- "description": "Streams2 writable stream for [levelup]."
- },
- "level-writestream": {
- "github": "pgte/level-writestream",
- "description": "Streams2 writable stream for [levelup]."
- },
- "level-write-stream": {
- "github": "Raynos/level-write-stream",
- "description": "Streams1 writable stream for [levelup] or [abstract-leveldown]."
- },
- "pull-level": {
- "github": "dominictarr/pull-level",
- "description": "[`pull-stream`](https://github.com/pull-stream/pull-stream) interface to [levelup] with read streams, write streams and realtime (tail/live) reads."
- },
- "level-live-stream": {
- "github": "dominictarr/level-live-stream",
- "description": "Like `db.createReadStream()` except it's live / tailable. i.e. instead of ending, it will stay open and stream changes to the database as they are inserted."
+ "level-read-stream": {
+ "github": "Level/read-stream",
+ "description": [
+ "Read from an [abstract-level] database using Node.js streams."
+ ],
+ "timeless": true
},
- "level-live": {
- "github": "voltraco/level-live",
+ "level-web-stream": {
+ "github": "Level/web-stream",
"description": [
- "Simple, light and correct live read stream implementation.",
- "",
- "NB. Uses an undefined streams version."
+ "Read from an [abstract-level] database using Web Streams."
]
},
- "level-livefeed": {
- "github": "Raynos/level-livefeed",
- "description": "A live query of a range in [levelup]. Similar to [level-live-stream] but with a streams2 interface."
- },
- "level-range": {
- "github": "juliangruber/level-range",
- "description": "Find all K/V-pairs prefixed by a certain key. Streams1."
- },
- "level-cursor": {
- "github": "kordon/cursor",
- "description": "A stream \"cursor\" to iterate through a ReadStream / KeyStream / ValueStream."
- },
- "level-glob": {
- "github": "vweevers/level-glob",
- "description": "A streams2 read stream filtered and ordered by glob patterns. Keys in the database should be unix-like paths."
+ "level-ws": {
+ "github": "Level/level-ws",
+ "description": "A basic writable stream for [abstract-level] databases, using Node.js core streams. Has not been updated for `abstract-level` 2 yet (to use the promise API).",
+ "copyrightYear": 2012,
+ "author": null
}
}
}
diff --git a/modules/sublevels.json b/modules/sublevels.json
deleted file mode 100644
index 6198556..0000000
--- a/modules/sublevels.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "title": "Sublevels",
- "description": "Modules related to splitting a database into sections a.k.a. sublevels.",
- "modules": {
- "subleveldown": {
- "github": "Level/subleveldown",
- "compatibility": ["abstract-leveldown", "levelup"],
- "description": "Split a [levelup] database into sublevels with their own keyspace, encoding and events.",
- "copyrightYear": 2014,
- "author": "[Mathias Buus](https://github.com/mafintosh)"
- },
- "level-temp": {
- "github": "mafintosh/level-temp",
- "description": "Create a temporary [subleveldown] sublevel that is guaranteed to be empty."
- },
- "level-mount": {
- "github": "u8sand/level-mount",
- "description": "Mount multiple [abstract-leveldown] stores by key prefix onto a single store. Can be used with [subleveldown]."
- },
- "bytespace": {
- "github": "deanlandolt/bytespace",
- "description": [
- "Keypath subspaces prefixed with [bytewise] tuples. Similar to [level-sublevel].",
- "",
- "NB. [bytewise] - and thus [bytespace] - can be slow. Consider using [subleveldown] paired with the [charwise] encoding instead."
- ]
- },
- "level-sublevel": {
- "github": "dominictarr/level-sublevel",
- "description": [
- "Adds the ability to create subsections with the same API as [levelup], but only write/read to a prefixed section, or bucket, of the key-space. Each section also has [level-hooks] installed.",
- "",
- "NB. No longer maintained. We recommend [subleveldown] instead."
- ]
- },
- "sublevel-prefixer": {
- "github": "mafintosh/sublevel-prefixer",
- "description": "Utility to prefix a key with a sublevel prefix."
- },
- "level-sublevel-stream": {
- "github": "juliangruber/level-sublevel-stream",
- "description": [
- "Find [level-sublevel] sublevels, not requiring them to be in memory already."
- ]
- },
- "level-subtree": {
- "github": "hij1nx/level-subtree",
- "description": [
- "Generate a tree from [level-sublevel] sublevels, useful when there is no manifest."
- ]
- },
- "level-superlevel": {
- "github": "randymized/level-superlevel",
- "description": [
- "Superlevel adds a \"super\" level that allows accessing the entire database, discovering [level-sublevel] sublevels and browsing the database without knowledge of the sublevel structure."
- ]
- },
- "level-subkey": {
- "github": "snowyu/level-subkey",
- "description": [
- "Use path-like keys to separate sections of [levelup], with hooks. Adapted from [level-sublevel]."
- ]
- },
- "level-mirror": {
- "github": "juliangruber/level-mirror",
- "description": "Mirror and optionally transform data from one [level-sublevel] sublevel into another."
- }
- }
-}
diff --git a/modules/utilities.json b/modules/utilities.json
index 0c332ad..6ea1ac0 100644
--- a/modules/utilities.json
+++ b/modules/utilities.json
@@ -1,27 +1,19 @@
{
"title": "Utilities",
"modules": {
- "level-codec": {
- "github": "Level/codec",
- "description": "Encode keys, values and ltgte options. Used in [encoding-down].",
- "copyrightYear": 2012,
- "author": null
- },
- "level-errors": {
- "github": "Level/errors",
- "description": "Error types for [levelup].",
- "copyrightYear": 2012,
- "author": null
+ "level-transcoder": {
+ "github": "Level/transcoder",
+ "description": "Encode data with built-in or custom encodings. Used in [abstract-level]."
},
"level-test": {
"github": "Level/level-test",
- "description": "Easily run your `level-*` tests against [all stores](#stores).",
+ "description": "Inject temporary and isolated [abstract-leveldown] stores ([leveldown], [level-js], [memdown] or custom) into your tests.",
"copyrightYear": 2013,
"author": "Dominic Tarr"
},
"level-compose": {
"github": "Level/compose",
- "description": "Compose a database factory from [abstract-leveldown] and [levelup] layers.",
+ "description": "Compose a database factory from [abstract-leveldown] and [levelup] layers. TBD if still relevant after [abstract-level].",
"copyrightYear": 2019,
"author": null
},
diff --git a/package.json b/package.json
index 5622ca0..ff12ad2 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"license": "MIT",
"scripts": {
"test": "standard && npm run dependency-check",
- "awesome": "node src README.md modules/*",
+ "awesome": "node src README.md modules/*.json",
"dependency-check": "dependency-check . src/*.js -i dependency-check -i standard"
},
"devDependencies": {
@@ -30,6 +30,9 @@
"unist-util-visit": "^2.0.0",
"vfile-reporter": "^6.0.0"
},
+ "standard": {
+ "ignore": ["modules/*.js"]
+ },
"repository": {
"type": "git",
"url": "https://github.com/Level/awesome.git"
diff --git a/src/mdast-generator.js b/src/mdast-generator.js
index e13d722..78ce6d5 100644
--- a/src/mdast-generator.js
+++ b/src/mdast-generator.js
@@ -6,6 +6,8 @@ const compat = require('./shield-compat').badge
const img = require('./mdast-image')
const b = require('unist-builder')
const processor = require('remark')()
+const fs = require('fs')
+const path = require('path')
module.exports = function (section, done) {
mapLimit(Object.entries(section.modules), 4, generateModuleSection, (err, res) => {
@@ -13,6 +15,12 @@ module.exports = function (section, done) {
const nodes = res.flat()
+ if (section.example) {
+ const fp = path.join('modules', section.example)
+ const js = fs.readFileSync(fp, 'utf8').trim()
+ nodes.unshift(b('code', { lang: 'js' }, js))
+ }
+
if (section.description) {
const children = parse(join(section.description, ' '))
nodes.unshift(b('paragraph', b('strong', children)))
@@ -49,32 +57,63 @@ module.exports = function (section, done) {
function generateBadges (id, module, done) {
const fns = []
- if (section.compatibility) {
- for (const target of (module.compatibility || section.compatibility)) {
- fns.push((id, module, next) => {
- compat(id, target, (err, badge) => {
- if (err) return next(err)
- next(null, img(badge.image, badge.alt, badge.link))
- })
- })
- }
- }
-
if (section.dependencies !== false) {
+ fns.push(generateNpmVersionBadge)
+ fns.push(generateNpmDownloadsBadge)
+ fns.push(generateLicenseBadge)
fns.push(generateLastCommitBadge)
fns.push(generateContributorsBadge)
}
+ for (const target of (module.compatibility || section.compatibility || [])) {
+ fns.push((id, module, next) => {
+ compat(id, target, (err, badge) => {
+ if (err) return next(err)
+ next(null, img(badge.image, badge.alt, badge.link))
+ })
+ })
+ }
+
mapLimit(fns, 4, (fn, next) => fn(id, module, next), (err, badges) => {
if (err) return done(err)
done(null, badges.filter(Boolean))
})
}
+ function generateNpmVersionBadge (id, module, done) {
+ const image = `https://img.shields.io/npm/v/${id}`
+ const alt = 'npm package version'
+ const link = `https://www.npmjs.com/package/${id}`
+
+ process.nextTick(done, null, img(image, alt, link))
+ }
+
+ function generateNpmDownloadsBadge (id, module, done) {
+ const image = `https://img.shields.io/npm/dw/${id}`
+ const alt = 'npm downloads'
+ const link = `https://www.npmjs.com/package/${id}`
+
+ process.nextTick(done, null, img(image, alt, link))
+ }
+
+ function generateLicenseBadge (id, module, done) {
+ // Don't care for interpretation of "good" licenses so use informational color
+ const image = `https://img.shields.io/npm/l/${id}?color=blue`
+ const alt = 'License'
+ const link = `https://www.npmjs.com/package/${id}`
+
+ process.nextTick(done, null, img(image, alt, link))
+ }
+
function generateLastCommitBadge (id, module, done) {
if (!module.github) return process.nextTick(done)
- const image = `https://img.shields.io/github/last-commit/${module.github}`
+ let image = `https://img.shields.io/github/last-commit/${module.github}`
+
+ if (module.timeless) {
+ image += '?color=brightgreen'
+ }
+
const alt = 'Last commit'
const link = `https://github.com/${module.github}`
@@ -84,7 +123,7 @@ module.exports = function (section, done) {
function generateContributorsBadge (id, module, done) {
if (!module.github) return process.nextTick(done)
- const image = `https://img.shields.io/github/contributors/${module.github}?color=brightgreen`
+ const image = `https://img.shields.io/github/contributors/${module.github}?color=blue`
const alt = 'Contributors'
const link = `https://github.com/${module.github}/graphs/contributors`
diff --git a/src/remark-generator.js b/src/remark-generator.js
index 8d79fa5..b15a3fd 100644
--- a/src/remark-generator.js
+++ b/src/remark-generator.js
@@ -8,13 +8,21 @@ module.exports = function (options) {
const sections = options.sections
const modules = options.modules || {}
+ let totalModules = 0
+
// Normalize and validate sections
for (const section of sections) {
if (typeof section.title !== 'string' || section.title === '') {
throw new TypeError('title must be a non-empty string')
}
- for (const [id, module] of Object.entries(section.modules)) {
+ const entries = Object.entries(section.modules)
+
+ console.error('%s modules in %s', entries.length.toString().padStart(3), section.title)
+
+ for (const [id, module] of entries) {
+ totalModules++
+
if (modules[id]) {
throw new Error('duplicate module: ' + id)
}
@@ -32,6 +40,8 @@ module.exports = function (options) {
}
}
+ console.error('\n%s modules total\n', totalModules.toString().padStart(3))
+
return function transformer (tree, file, next) {
mapLimit(sections, 4, generator, (err, results) => {
if (err) return next(err)
diff --git a/src/shield-compat.js b/src/shield-compat.js
index d694a00..4fe6121 100644
--- a/src/shield-compat.js
+++ b/src/shield-compat.js
@@ -93,9 +93,6 @@ exports.data = function (module, target, opts, callback) {
}
return finish(null, 'missing')
- } else if (range === '*') {
- // Discourage use of this specifier.
- return finish(null, range, 'red')
}
getPackument(target.package, (err, packument) => {
@@ -114,7 +111,9 @@ exports.data = function (module, target, opts, callback) {
return finish(err, 'invalid')
}
- if (compat.major < major - 2) {
+ if (target.package === 'levelup' || target.package === 'abstract-leveldown') {
+ finish(null, compat.short, 'inactive')
+ } else if (compat.major < major - 2) {
finish(null, compat.short, 'red')
} else if (compat.major < major) {
finish(null, compat.short, 'orange')