forked from mirror/async-std
No description
190: Clean up the fs module and a few other places r=stjepang a=stjepang Just a cleanup for various pieces of documentation, mainly around the `lib.rs` docs, the prelude, and the `fs` module. Some small bugs are also fixed along the way. This PR is the first one in a series of review PRs that I will be submitting before the upcoming 1.0 release. 200: expose IoSlice, IoSliceMut r=stjepang a=yoshuawuyts Exposes `io::IoSlice` and `io::IoSliceMut`. Given we're returning these from `read_vectored` and `write_vectored` it might make sense to just include them as part of our re-exports. Thanks! Ref #131. Co-authored-by: Stjepan Glavina <stjepang@gmail.com> Co-authored-by: Yoshua Wuyts <yoshuawuyts@gmail.com> |
||
|---|---|---|
| benches | ||
| ci | ||
| docs | ||
| examples | ||
| src | ||
| tests | ||
| .gitignore | ||
| .travis.yml | ||
| bors.toml | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| rustfmt.toml | ||
Async version of the Rust standard library
This crate provides an async version of std. It provides all the interfaces you
are used to, but in an async version and ready for Rust's async/await syntax.
Documentation
async-std comes with extensive API documentation and a book.
Quickstart
Add the following lines to your Cargo.toml:
[dependencies]
async-std = "0.99"
Or use cargo add if you have it installed:
$ cargo add async-std
Hello world
use async_std::task;
fn main() {
task::block_on(async {
println!("Hello, world!");
})
}
Low-Friction Sockets with Built-In Timeouts
use std::time::Duration;
use async_std::{
prelude::*,
task,
io,
net::TcpStream,
};
async fn get() -> io::Result<Vec<u8>> {
let mut stream = TcpStream::connect("example.com:80").await?;
stream.write_all(b"GET /index.html HTTP/1.0\r\n\r\n").await?;
let mut buf = vec![];
io::timeout(Duration::from_secs(5), async {
stream.read_to_end(&mut buf).await?;
Ok(buf)
}).await
}
fn main() {
task::block_on(async {
let raw_response = get().await.expect("request");
let response = String::from_utf8(raw_response)
.expect("utf8 conversion");
println!("received: {}", response);
});
}
Take a look around
Clone the repo:
git clone git@github.com:async-rs/async-std.git && cd async-std
Generate docs:
cargo doc --features docs.rs --open
Check out the examples. To run an example:
cargo run --example hello-world
Contributing
See our contribution document.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
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.