This creates an efficient bounded bytes channel implementing Async{Read,Write}, similar to tokio::io::duplex but is unidirectional by default. It can be used glue together interfaces accepting a reader and a writer, or for testing other complex structures building on top of Async{Read,Write}.
It is implemented as a ring buffer with no allocation except for creation, and is able to limit the whole buffer size. Alternatives like channel::<Vec<u8>>()/into_async_read() cannot achieve these, and has a larger memory and/or CPU footprints.
This creates an efficient bounded bytes channel implementing
Async{Read,Write}
, similar totokio::io::duplex
but is unidirectional by default. It can be used glue together interfaces accepting a reader and a writer, or for testing other complex structures building on top ofAsync{Read,Write}
.It is implemented as a ring buffer with no allocation except for creation, and is able to limit the whole buffer size. Alternatives like
channel::<Vec<u8>>()
/into_async_read()
cannot achieve these, and has a larger memory and/or CPU footprints.