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

Native Multiplexed Coloc #1170

Open bernardnormier opened 2 years ago

bernardnormier commented 2 years ago

We should implement and provide a native multiplexed "coloc" transport, where we create 2 pipes for each multiplexed stream.

And then:

If a user wants to see how to implement a simple transport, he could browse the code of this simple coloc in our tests.

In ZeroC Ice, coloc is not a transport so this IceRpc "simple transport" does not provide any interop with ZeroC Ice. Once we have a multiplexed coloc, I don't see a reason to ship this "simple coloc" as a "real" transport.

pepone commented 2 years ago

Implementing a new multiplexed transport is not trivial, given that Slic can work with a coloc simple transport isn't just simple to keep the simple coloc transport.

bentoi commented 2 years ago

The simple coloc transport is actually not trivial either 🙂. While it would be nice to have to go through the exercice of implementing another multiplexed transport, I don't think it's essential to have at this point. The multiplexed transport API might also change again the day the .NET Quic transport is released.

pepone commented 1 year ago

@bernardnormier can we close this, I don't think is a high priority for 0.1?

bernardnormier commented 1 year ago

See #2118. Would be nice to do, but I also want to ship 0.1 ASAP.

For the name for this multiplexed coloc transport, I propose moloc, a mash of multiplexed and coloc.