Stabilize custom transports API
At the moment, we already have a way to create custom transports. However, this API is fragile and probably should be kept unstable for the entire lifetime of a project.
Instead, we suggest to add the following options:
- Single channel connection based on
Read
andWrite
traits. - Multiple channel connection based on
Read
andWrite
traits. - Connection based on MPSC channels sending slices of individual frames.
- Virtual connection that just sends and receives decoded frames.
We need to look into a better way of managing channels. The current ChannelFactory
works fine for current purposes but is
too dependent on Read
and Write
traits. We could probably use something like SliceReader
/ SliceWriter
for option 3.
but
it is unclear what the performance penalty will be. For option 4.
we probably need an alternative way of registering connection
channels.
With option 4.
, we may achieve an interesting functionality. Basically, this means that it would be possible to create dependent
nodes with their own set of processing rules. However, while we might keep this possibility in mind, it is out of the scope of this feature.