Native Multiplexed Coloc
We should implement and provide a native multiplexed "coloc" transport, where we create 2 pipes for each multiplexed stream.
And then:
- use this coloc transport for icerpc tests and various protocol-agnostics tests that require a connection, such as client-server Slice operation tests
- ship this coloc transport to allow users to write their own (unit) tests with this transport
- downgrade the existing simple transport "coloc" to an IceRpc test-only transport, used only for the testing of Slic and the ice protocol (e.g. IceProtocolConnection)
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.
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.
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.
@bernardnormier can we close this, I don't think is a high priority for 0.1?
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.