level-sandbox

Host your LevelDB inside a sandbox

level-sandbox

A sandbox for hosting leveldbs.

$ npm install -g level-sandbox

Start a sandbox server:

$ level-sandbox --port 4646 --auth foobar

Connect to it from JS:

var net = require('net');
var multilevel = require('multilevel');
 
var db = multilevel.client();
 
var con = net.connect(4646);
con.pipe(db.createRpcStream()).pipe(con);
 
db.auth('foobar', function(err){
  db.put('foo', 'bar', function(err){
    db.get('foo', function(errvalue){
      console.log('foo: %s', value);
    });
  });
});
 
  Usage: sandbox.js [options] [path]
  
  Options:
  
    -h, --help          output usage information
    -V, --version       output the version number
    -p, --port <n>      port to listen on ("random" for random)
    -a, --auth <auth>   authorization
    -l, --log <events>  log events to stdio
 

Set auth to the special value prompt to be asked for credentials, so they don't show up in your terminal.

$ level-sandbox --auth prompt
auth: ********

Those log events are available:

  • tcp
  • auth
  • access

Get one or more of them on stdio:

$ level-sandbox --log tcp
$ level-sandbox --log auth,access

Or get all:

$ level-sandbox --log all

Use a tool like upstart or forever to make sure the process keeps running. Crashes are highly unlikely but might be caused by memory leaks or other kinds of bugs somewhere in the stack.

  • change password without restart
  • encrypt connection

MIT