4 releases
| 0.2.0 | Mar 8, 2021 |
|---|---|
| 0.1.2 | May 4, 2020 |
| 0.1.1 | Aug 18, 2018 |
| 0.1.0 | Aug 18, 2018 |
#13 in #combine
3,505 downloads per month
Used in 11 crates
(10 directly)
14KB
268 lines
readwrite
Given two things, one of which implements std::io::Read and other implements std::io::Write, make a single socket-like object which implements Read + Write. Note that you can't write to it while waiting for data to come from read part.
Example: generate a virtual socketpair.
fn main() {
extern crate pipe;
extern crate readwrite;
let (r1,w1) = pipe::pipe();
let (r2,w2) = pipe::pipe();
let (s1,s2) = (ReadWrite::new(r1,w2), ReadWrite::new(r2,w1));
}
There is also async implementation for combining tokio::io::AsyncRead and tokio::io::AsyncWrite into a AsyncRead + AsyncWrite. Enable the non-default tokio Cargo feature for it to work:
Similarly there is futures::io::AsyncRead/AsyncWrite version gated under asyncstd Cargo feature.
[dependencies]
readwrite = {version="0.1.1", features=["tokio"]}
See also
- duplexify - alternative implementation for async-std
- Use version
0.1of this crate for oldtokio-coresupport.tokio 0.1is not supported.
Dependencies
~0–730KB
~11K SLoC