You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Yoshua Wuyts 8aa5921dfa
Merge pull request #833 from OSSystems/topic/fix_channel_doc
7 months ago
.github ci: update actions/cache to v2 9 months ago
benches Optimization: a slot for the next task to run (#529) 1 year ago
ci Restore Version Sort (#121) 1 year ago
docs Add missing ? operator after handle.await 1 year ago
examples Revert "Stabilize most stream method and remove unnecessary macros" 1 year ago
src channel doc: Fix misleading reference to None return on Receiver 7 months ago
tests fix(stream): add send guards on collect 8 months ago
.gitignore Initial commit 1 year ago chore: release v1.6.2 8 months ago Create 1 year ago
Cargo.toml Update kv-log-macro to 1.0.6 8 months ago
LICENSE-APACHE Initial commit 1 year ago
LICENSE-MIT Initial commit 1 year ago Merge pull request #734 from sunli829/master 10 months ago
bors.toml Remove travis from requirements 1 year ago
rustfmt.toml Remove usage of unstable format_code_in_doc_comments option (#685) 1 year ago feat: add basic wasm support 10 months ago


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.


  • 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.


use async_std::task;

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

fn main() {

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


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.


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.


  • async-tls — Async TLS/SSL streams using Rustls.

  • async-native-tlsNative TLS for Async. Native TLS for futures and async-std.

  • async-tungstenite — Asynchronous WebSockets for async-std, tokio, gio and any std Futures runtime.

  • Tide — Serve the web. A modular web framework built around async/await.

  • SQLx — The Rust SQL Toolkit. SQLx is a 100% safe Rust library for Postgres and MySQL with compile-time checked queries.

  • Surf — Surf the web. Surf is a friendly HTTP client built for casual Rustaceans and veterans alike.

  • Xactor — Xactor is a rust actors framework based on async-std.

  • async-graphql — A GraphQL server library implemented in rust, with full support for async/await.


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.