2 ms·
I'm surprised the author doesn't mention ConnectRPC: https://connectrpc.com/ https://connectrpc.com/ It solves ALL the problems of vanilla gRPC, and it even is
by cyberax 2y ago
I'm surprised the author doesn't mention ConnectRPC: https://connectrpc.com/ https://connectrpc.com/
It solves ALL the problems of vanilla gRPC, and it even is compatible with the gRPC clients! It grew out of Twirp protocol, which I liked so much I made a C++ implementation: https://github.com/Cyberax/twirp-cpp https://github.com/Cyberax/twirp-cpp
But ConnectRPC guys went further, and they built a complete infrastructure for RPC. Including a package manager (buf.build), integration with observability ( https://connectrpc.com/docs/go/observability/ https://connectrpc.com/docs/go/observability/ ).
And most importantly, they also provide a library to do rich validation (mandatory fields, field limits, formats, etc): https://buf.build/bufbuild/protovalidate https://buf.build/bufbuild/protovalidate
Oh, and for the unlimited message problem, you really need to use streaming. gRPC supports it, as does ConnectRPC.
- athorax 2y agoThe author does mention it in the article and is also a contributor to supporting tooling https://github.com/sudorandom/protoc-gen-connect-openapi https://github.com/sudorandom/protoc-gen-connect-openapi
- sudorandom 2y agoAuthor here: I definitely should have been more explicit for my love of connectrpc, buf, protovalidate, etc. I do mention ConnectRPC but maybe not as loud as I could have. I definitely try to avoid confessing my love for ConnectRPC in every post, but sometimes it's hard not to because they've made such good strategic decisions that just make sense and round out the ecosystem so well.
- cyberax 2y agoMy fault, I did read the article but I overlooked the ConnectRPC mention.