node package manager



A mock LevelDOWN implementation that queues operations while a real LevelDOWN instance is being opened.

LevelDB Logo

Build Status


DeferredLevelDOWN implements the basic AbstractLevelDOWN API so it can be used as a drop-in replacement where LevelDOWN is needed.

put(), get(), del() and batch() operations are all queued and kept in memory until the LevelDOWN-compatible object has been opened through DeferredLevelDOWN's open() method.

batch() operations will all be replayed as the array form. Chained-batch operations are converted before being stored.

var Deferred  = require('deferred-leveldown')
  , LevelDOWN = require('leveldown')
var db = Deferred(LevelDOWN('location'))
db.put('foo', 'bar', function (err) {
}) (err) {
  // ... 


DeferredLevelDOWN is an OPEN Open Source Project. This means that:

Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.

See the file for more details.


DeferredLevelDOWN is only possible due to the excellent work of the following contributors:

Rod VaggGitHub/rvaggTwitter/@rvagg
John ChesleyGitHub/cheslesTwitter/@chesles
Jake VerbatenGitHub/raynosTwitter/@raynos2
Dominic TarrGitHub/dominictarrTwitter/@dominictarr
Max OgdenGitHub/maxogdenTwitter/@maxogden
Lars-Magnus SkogGitHub/ralphtheninjaTwitter/@ralphtheninja
David BjörklundGitHub/keslaTwitter/@david_bjorklund
Julian GruberGitHub/juliangruberTwitter/@juliangruber
Paolo FragomeniGitHub/hij1nxTwitter/@hij1nx
Anton WhalleyGitHub/No9Twitter/@antonwhalley
Matteo CollinaGitHub/mcollinaTwitter/@matteocollina
Pedro TeixeiraGitHub/pgteTwitter/@pgte
James HallidayGitHub/substackTwitter/@substack

License & copyright

Copyright (c) 2013-2017 DeferredLevelDOWN contributors (listed above).

DeferredLevelDOWN is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included file for more details.