multilevel-reconnected

0.0.1 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i multilevel-reconnected

Weekly Downloads

0

Version

0.0.1

License

MIT

Last publish

Collaborators

  • soldair