multilevel-reconnected

this is a reconnecting and stream resuming multilevel client wrapper.

npm install multilevel-reconnected
4 downloads in the last week
8 downloads in the last month

Build Status

multilevel-reconnected

This is a reconnecting and stream resuming multilevel client wrapper. Right now it provides a more limited api with no sublevels but it can actually be used in long running server apps.

multilevel is a leveldb client wrapper. multilevel-reconnected wraps multilevel but for now provides a reduced api .

the most important todo is createWriteStream.

example

var clients = require('mulitlevel-reconnected');

var client = clients({
  // ALL of these options are passed to reconnect.connect. this is probably not something i want to keep doing.
  // unless you pass an instance of reconnect
  reconnect:[optional a disconnected reconnect instance] or [optional object of options to pass to reconnect],
  //
  // options like these would be used to connect via net through reconnect.
  //
  port: ,// right now i have hardcoded this to use net connect. this is wrong and will be fixed.
  //
  host: ,// just like net. if its there will try to connect to said host.
  //
  // these options are used to configure retires and error behavior.
  //
  retries:1 [default], // if the server disconnected before firing the callback of a method 
  // the method will be retried up to retires times before calling back with E_DISCONNECT
  // 
  resume:1 [default],  // if the server crashes how many times should an active stream be resumed before issuing and E_DISCONNECT error.
  // streaming methods such as createKeyStream createValueStream and createReadStream take advantage of this.
  // NOTE: if you use resume calls to createValueStream will really call createReadStream on multilevel for key tracking and emit only the values.
  //
  timeout:10000, // if a callback method takes greater than timeout ms to callback it will be called back with an E_TIMEDOUT error
  // if a stream waits timeout ms for the server to connect an E_TIMEDOUT error will be emitted. once it is connected it will not timeout.
  // 
});

// -1 for retry/timeout/resume options will make it infinite. 0 timeout is the same as no timeout. 

client.createReadStream().on('data',console.log);

api

see levelup for details.

  • get
  • put
  • batch
  • del

  • createReadStream

  • createValueStream
  • createKeyStream
npm loves you