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).
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.
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.