You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
Stjepan Glavina ceba324bef Fix feature flags 4 years ago
.github link to our contribution guidelines 4 years ago
benches Optimization: a slot for the next task to run (#529) 5 years ago
ci Restore Version Sort (#121) 5 years ago
docs docs: Replace mention of futures-preview crate 4 years ago
examples remove throttle example 5 years ago
src Fix feature flags 4 years ago
tests Improve verbose errors for socket addresses 4 years ago
.gitignore Initial commit 5 years ago
CHANGELOG.md Fix a typo 4 years ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 5 years ago
Cargo.toml New scheduler resilient to blocking 4 years ago
LICENSE-APACHE Initial commit 5 years ago
LICENSE-MIT Initial commit 5 years ago
README.md fix link 4 years ago
bors.toml Remove travis from requirements 5 years ago
rustfmt.toml Run cargo fmt for doc comments (#515) 5 years ago

README.md

async-std

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.

Features

  • Modern: Built from the ground up for std::future and async/await with blazing fast compilation time.
  • Fast: Our robust allocator and threadpool designs provide ultra-high throughput with predictably low latency.
  • Intuitive: Complete parity with the stdlib means you only need to learn APIs once.
  • Clear: Detailed documentation and accessible guides mean using async Rust was never easier.

Examples

All examples require the "attributes" feature to be enabled. This feature is not enabled by default because it significantly impacts compile times. See task::block_on for an alternative way to start executing tasks.

async fn say_hello() {
    println!("Hello, world!");
}

#[async_std::main]
async fn main() {
    say_hello().await;
}

More examples, including networking and file access, can be found in our examples directory and in our documentation.

Philosophy

We believe Async Rust should be as easy to pick up as Sync Rust. We also believe that the best API is the one you already know. And finally, we believe that providing an asynchronous counterpart to the standard library is the best way stdlib provides a reliable basis for both performance and productivity.

Async-std is the embodiment of that vision. It combines single-allocation task creation, with an adaptive lock-free executor, threadpool and network driver to create a smooth system that processes work at a high pace with low latency, using Rust's familiar stdlib API.

Installation

With cargo add installed run:

$ cargo add async-std

We also provide a set of "unstable" features with async-std. See the features documentation on how to enable them.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.