icerpc / icerpc-csharp

A C# RPC framework built for QUIC, with bidirectional streaming, first-class async/await, and Protobuf support.
https://docs.icerpc.dev
Apache License 2.0
101 stars 13 forks source link

Full protobuf support #3483

Closed bernardnormier closed 11 months ago

bernardnormier commented 1 year ago

We should consider adding full Protobuf support, i.e.:

I anticipate this code would be similar to the C# code generated for Slice interfaces, with client-side IName and NameProxy and server-side INameService.

One open question is how to deal with failure responses for Protobuf service RPCs (status code > Success). We could for example mimic gRPC's "richer error model": https://grpc.io/docs/guides/error/

It relies heavily on Any, which is a concern for languages such as Rust: https://cloud.google.com/apis/design/errors#error_model

pepone commented 1 year ago

Seems rust already supports the richer error model:

pepone commented 11 months ago

Implemented in #3697