Impressive effort. I’m sure you looked at it, so I’m curious why not use gRPC? To avoid HTTP?
* they're too chatty.
* They waste too much on overhead.
* their bidirectional support is poor.
* Their asynchronous support is poor.
* They can't multiplex across multiple connections.