Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add futures_util::io::{pipe,Pipe{Reader,Writer}} for bytes channels #2764

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

oxalica
Copy link
Contributor

@oxalica oxalica commented Jul 23, 2023

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.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant