Noteworthy points

All operations return a function that takes two arguments (two functions: callback and errback). Therefore you must call it for something to happen: db.get('bucket')() (default callbacks), or db.get('bucket', 'key')(mycallback, myerrback)

These functions are passed in two arguments, the response object and a meta object: var mycallback = function(response, meta) {}

Headers are exposed through meta.headers and the status code through meta.statusCode

All operations accept an options object as the last argument, which will be mixed-in as to override certain defaults

If no Content-Type header is provided, application/json will be assumed - which in turn will be serialized into JSON

Link-walking is done through the map/reduce interface

If no language is provided in any map/reduce phase, language: javascript is assumed

http.Client queues all requests, so if you want to run requests in parallel you need to create one client instance for each request

TODO

Make it more convenient to work with Content-Types / MIME types / binary files