10 breaking releases
new 0.12.0 | Dec 4, 2024 |
---|---|
0.11.0 | Nov 7, 2024 |
0.10.0 | Oct 8, 2024 |
0.5.0 | Feb 19, 2024 |
0.1.0 | Jul 10, 2023 |
#289 in Concurrency
152 downloads per month
Used in busybee
265KB
6K
SLoC
split_channel
split_channel provides a stream-of-messages abstraction with split send/recv channels.
Status
Maintenance track. The library is considered stable and will be put into maintenance mode if unchanged for one year. Documentation changes excepted.
Scope
This library provides the abstraction of split send/recv channels. This is a hack of the type system, allowing two
&mut
references to the same underlying types.
Warts
- I'm not a fan of the name.
Documentation
The latest documentation is always available at docs.rs.
lib.rs
:
split_channel provides a stream-of-messages abstraction with split send/recv channels. Most calls that establish a channel return a tuple of ([RecvChannel], [SendChannel]).
The key idea here is that an &mut RecvChannel
and &mut SendChannel
exist for the same
SslStream<TcpStream>
, allowing parallel sending and processing of messages. The general
pattern is to lock the send channel, send data, and then use sync42::wait_list::WaitList
to
synchronize receivers.
Dependencies
~32MB
~835K SLoC