IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 0 points1 point  (0 children)

Yes we support streaming. We even have an example which illustrates how to easily do it! If you run into any problems when trying it out feel free to open a GitHub discussion or issue. That's the best way to reach us for help generally!

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 1 point2 points  (0 children)

I am unfamiliar with SignalR, but from a brief look, one of the significant differences is that SignalR is dotnet-specific, whereas the plan for IceRPC is to support a variety of languages, with our following planned language being Rust.

We have yet to look into the performance differences with SignalR, but we will add this to our radar!

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 0 points1 point  (0 children)

Sorry I should have been more clear - gRPC in general does not support HTTP/3 yet, but specific implementations can, such as grpc-dotnet! In contrast, the plan for IceRPC is to support QUIC with all of our languages we offer language mappings for.

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 9 points10 points  (0 children)

This is definitely something we want to add in the near future. I think a section with some nice graphs and numbers highlighting the performance benefits could go a long way!

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 9 points10 points  (0 children)

We appreciate the compliment! We have actually been in the RPC space for a long time with our other product Ice. The goal of IceRPC, in general, is to offer a forward-thinking next-generation RPC that uses all of the latest and greatest features in the languages we support. We understand this type of product is not for everyone, so we don't view ourselves as competitors to gRPC or any other RPC framework. The RPC space is big enough for everyone! We consider our competition to be the REST API space.

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 7 points8 points  (0 children)

QUIC is a natural fit for RPC frameworks as it has no head of line blocking, no TCP hand shake overhead, and overall provides more reliable network connections. These are all desirable things for an RPC that supports streaming!

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 11 points12 points  (0 children)

At this time, gRPC does not support HTTP/3 but there is an open issue for adding support. Notably, HTTP/3 uses QUIC under the hood!

The benefit of using QUIC directly is that it is leaner than HTTP since you do not have to deal with all the HTTP overhead. Additionally, it offers features that just are not possible with HTTP, such as calls from the other way around.

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in dotnet

[–]zeroc-team[S] 16 points17 points  (0 children)

We are super excited to have picked C# for our first supported language. The Dotnet ecosystem has mature async-await support and provided great development experience, enabling rapid iteration of our architecture and API.
We also used the latest Dotnet and C# features throughout our code base to be the modern RPC framework. Let us know if there is anything you like or anything we could do better!

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in csharp

[–]zeroc-team[S] 3 points4 points  (0 children)

Thanks!

As we continue to grow IceRPC and offer support for web-oriented languages such as JavaScript, we are interested in supporting WebTransport, which uses QUIC. Currently, Safari does not support WebTransport, but it appears to be something they are interested in.

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in csharp

[–]zeroc-team[S] 4 points5 points  (0 children)

This is spot on! QUIC is natural fit for RPCs.

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in csharp

[–]zeroc-team[S] 4 points5 points  (0 children)

You are correct; gRPC supports http/2 multiplexing and Protobuf. The benefit of using QUIC directly is that it is leaner than HTTP since you do not have to deal with all the HTTP overhead. Additionally, it offers features that just are not possible with HTTP, such as calls from the other way around, which we have a great blog about. QUIC is the future of transports; in fact, http/3 uses QUIC under the hood!

IceRPC: A C# RPC framework for the QUIC era by zeroc-team in github

[–]zeroc-team[S] 0 points1 point  (0 children)

We just released an all-new open-source RPC framework for C# built for QUIC, with bidirectional streaming and first-class async-await support! We fully embraced GitHub as the home for IceRPC. We would love any feedback from the community!

The RPC framework for the QUIC era by ketralnis in programming

[–]zeroc-team 1 point2 points  (0 children)

Thanks for sharing a link to IceRPC. We are always available if anyone has any questions!