3 ms·
To be clear, I'm only working on integrating a binary data format, which is different from a binary protocol. HTTP is baked pretty deep into CouchDB, which mak
by timanglade 15y ago
To be clear, I'm only working on integrating a binary data format, which is different from a binary protocol.
HTTP is baked pretty deep into CouchDB, which makes it hard to remove (but who knows, Couchbase seems to be having some success ripping it out).
BigCouch (Cloudant’s distributed version of CouchDB) has the HTTP layer neatly separated through the Fabric library (https://github.com/cloudant/fabric https://github.com/cloudant/fabric), so it'd probably be easier to add a binary protocol there.
- rkalla 15y agoTim, is the Couch server still going from binary disk data to JSON and then you convert that to the binary format or is your work actually allowing Couch to skip any textual JSON generation such that all the REST methods are still there, but their response bodies are just MessagePack binary data instead of text?
- timanglade 15y agoThe Couch server goes from binary Erlang terms (our default internal representation) to MessagePack right away, skipping all textual JSON generation. All the REST methods are still there, the body is just sent in MessagePack format with an application/x-msgpack header https://github.com/timanglade/couchdb/commit/b601286dae04bdc2488a0d9bf028c58e6feb3449 https://github.com/timanglade/couchdb/commit/b601286dae04bdc...
- rkalla 15y agoAh! That is exactly what I was hoping for (skipping the JSON in/out cycle server-side). Keeping the HTTP protocol in this case is fine for me and not require any unexpected changes to Couch. I hope that binary format work can be make configurable in the future with other formats supported. Thanks for the clarifications Tim.