A lightweight async prelude.
This crate is a subset of [futures] that compiles an order of magnitude faster, fixes minor warts in its API, fills in some obvious gaps, and removes all unsafe code from it.
In short, this crate aims to be more enjoyable than [futures] but still fully compatible with it.
Connect to a HTTP website, make a GET request, and pipe the response to the standard output:
```rust use asyncnet::TcpStream; use blocking::{blockon, Unblock}; use futures_lite::*;
fn main() -> io::Result<()> { blockon(async { let mut stream = TcpStream::connect("example.com:80").await?; let req = b"GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n"; stream.writeall(req).await?;
let mut stdout = Unblock::new(std::io::stdout());
io::copy(&stream, &mut stdout).await?;
Ok(())
})
} ```
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.