Show HN: FlatRPC – C++ RPC using Flatbuffers and ZeroMQ

3 points by gothack 5 years ago | 4 comments
  • gothack 5 years ago
    I made this after trying a bunch of solutions (gRPC, cap'n proto, rpclib) and getting frustrated over not being able to use other socket types (e.g. vsock).
    • kentonv 5 years ago
      Hmm, not to detract from what you've done, but I'm curious -- what stopped you from using Cap'n Proto with vsock?
      • gothack 5 years ago
        Partly down to the branding of the project, and the perceived added complexity which was not required, I just wanted a a simple extensible RPC mechanism, not a "Infinitely faster" "cerealization protocol" with "time travel" and "distributed objects". Cap'n proto is a lot to take in and wrap your head around.

        Edit: I didn't "stop" with cap'n proto, I never started because the project rubbed me the wrong way :/ maybe I should have given it a go, but heh, I made a thing instead.

        • kentonv 5 years ago
          Heh, fair enough. The branding is just meant to be silly (and to make fun of misleading benchmarks) but I totally get how it might be off-putting to some.

          FWIW the Cap'n Proto C++ implementation ought to be able to layer on top of vsock pretty easily. You can pass an arbitrary kj::AsyncIoStream to capnp::TwoParty{Client,Server}, and you can construct an AsyncIoStream wrapping any socket file descriptor.

          But yeah, capnp RPC is definitely one of the more complicated RPC implementations out there and if you don't need that power it may be too much.