2
0
Fork 1
mirror of https://github.com/async-rs/async-std.git synced 2025-01-16 10:49:55 +00:00
No description
Find a file
Yoshua Wuyts 735fa6954e Replace select!/try_select! with Future::{race,try_race} (#405)
* init Future::select

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* implement Future::select

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* try_select

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* fixes

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* works

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* pass clippy

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* please clippy

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* implement feedback from stjepan

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* rename select to race

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>

* fmt

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-11-02 23:00:03 +01:00
.github/workflows Small example for a TCP server that both handles IP v4 and v6 (#418) 2019-11-01 16:10:37 +01:00
benches Add utility type WakerSet to the sync module (#390) 2019-11-01 02:45:50 +01:00
ci Restore Version Sort (#121) 2019-08-28 17:16:02 +02:00
docs Fix typo in tutorial in book (#412) 2019-11-01 20:17:46 +01:00
examples Small example for a TCP server that both handles IP v4 and v6 (#418) 2019-11-01 16:10:37 +01:00
src Replace select!/try_select! with Future::{race,try_race} (#405) 2019-11-02 23:00:03 +01:00
tests Merge pull request #429 from markhildreth/tcp_smoke_tests 2019-11-02 02:30:42 +01:00
.gitignore Initial commit 2019-08-08 14:44:48 +02:00
bors.toml Remove travis from requirements 2019-10-08 00:58:26 +09:00
Cargo.toml Simplify default feature 2019-11-01 10:58:51 -03:00
CHANGELOG.md more updates 2019-10-29 12:16:56 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-08-12 20:02:31 +02:00
LICENSE-APACHE Initial commit 2019-08-08 14:44:48 +02:00
LICENSE-MIT Initial commit 2019-08-08 14:44:48 +02:00
README.md corrected a typo 2019-10-31 00:36:42 +05:30
rustfmt.toml Add rustfmt config 2019-08-08 16:04:14 +02:00

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

use async_std::task;

fn main() {
    task::block_on(async {
        println!("Hello, world!");
    })
}

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

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.