Cap'n Proto, FlatBuffers, and SBE
kentonv.github.io
kentonv.github.io
I realize it probably sounds like I'm asking for hand-holding, but I'm curious how people are using it as part of this nutritious breakfast... er, I mean, back-end infrastructure.
I'd like to build more of this into the system. In fact, it's probably a requirement for sandstorm.io (my main project). It'll take time, though.
FWIW, Cap'n Proto RPC is working great in Sandstorm as a way for sandboxed processes to communicate with the supervisor. This is entirely IPC so far, so encryption is not needed.
There's also the issue that Cap'n Proto wants to implement a distributed capability fabric in which machine A may have a capability to an object on machine B and may send that capability to machine C, after which machine C should form a direct connection to machine B in order to make calls on that capability. How to accomplish this (without PKI) is well-known, but it may prove convoluted to build it with TLS as the basic building block. I have to do more research, though.
Perhaps you're interested in helping? We love new contributors, and I can personally attest that writing an implementation of Cap'n Proto is a great way to really get to know a language. I've been waiting for someone to jump on Swift...
Three years ago I built a similar no-serialization message system, and while people initially objected to XML as the schema language, it was the right choice (even vs. JSON, which some wanted but would have been worse, e.g. no comments).
XML has been overused, but I think it's also highly appropriate for a schema language.
It's certainly a matter of opinion, but I find XML- and JSON-based schema languages extremely difficult to read with all the boilerplate they end up having.
Right now, Cap'n Proto makes the most sense for server <-> server communications, e.g. between a front-end and a back-end. In the future I hope to have a production-ready implementation in Javascript, which would allow you to use Cap'n Proto all the way up the stack.
All that said, I think Cap'n Proto in the browser will only really start making sense once there is a pure-Javascript RPC implementation over WebSocket.