Home

Awesome

level-over-http

Serves and stores items to a level database over http. level-over-http can live stream a level database and accept the same options defined in the LevelDOWN API.

Here is an example of serving 'test.db' over http://localhost:3000/test

var level       = require('level');
var http        = require('http');
var levelHttp   = require('level-over-http');

var db   = level('test.db');
var server = http.createServer(levelHttp.serve('/test', db)).listen(3000);

To push something to the leveldb, make a POST request.

    var options = {
        host : 'localhost',
        port : 3000,
        path : '/test',
        method : 'POST'
    }

    var req = http.request(options, function(res) {
    	res.pipe(process.stdout);
    });

    req.on('error', function(e) {
        console.log('problem with request: ' + e.message);
    })

    req.end('{"value":"hello wisconsin"}\n');

The following response is streamed to stdout.

{"result":"success","key":"0001427765362253.000000000"}

To live stream something from the leveldb, make a GET request.

    var options = {
        host : 'localhost',
        port : 3000,
        path : '/test',
        headers : { gte : '0001427765362253.000000000' }
    }

    var req = http.request(options, onResponse);

    req.end();

Notice the headers object can contain the same options as defined in the LevelDOWN API.

{"key":"0001427765362229.000000000","value":"hello wisconsin"}

level-over-http uses lexicographic-timestamp for key generation.