Skip to content

Instantly share code, notes, and snippets.

@fritzy
Last active August 29, 2015 14:01
Show Gist options
  • Save fritzy/ae8a8f3de86dbe842ce0 to your computer and use it in GitHub Desktop.
Save fritzy/ae8a8f3de86dbe842ce0 to your computer and use it in GitHub Desktop.
Create a levelup multilevel server that proxies to a Riak bucket
var levelup = require('levelup');
var multilevel = require('multilevel');
var net = require('net');
var util = require('util');
var argv = require('optimist')
.default({host: 'localhost', port: 8087, listen: 8091})
.usage('Usage: level2riak --host 127.0.0.1 --port 8087 --listen 8091 --bucket somebucket'
+ '\n\nlevel2riak uses the riak protocol buffer and pb port (default: 8087)'
+ '\nConnect with a multilevel client.')
.demand(['bucket'])
.alias('h', 'host')
.alias('p', 'port')
.alias('l', 'listen')
.alias('b', 'bucket')
.argv;
var riakuri = util.format("riak://%s:%d/%s", argv.host, argv.port, argv.bucket);
var db = levelup(
riakuri,
{ db: require('riakdown'), valueEncoding: 'json'});
console.log("Connected to", riakuri);
console.log("Listening for multilevel connection on:", argv.listen);
net.createServer(function (con) {
console.log("Recieved connection");
con.pipe(multilevel.server(db)).pipe(con);
}).listen(argv.listen);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment