# async-rs/async-std

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/async-rs-async-std).**

4,068 stars · 342 forks · Rust · Apache-2.0

## Links

- GitHub: https://github.com/async-rs/async-std
- Homepage: https://async.rs
- awesome-repositories: https://awesome-repositories.com/repository/async-rs-async-std.md

## Topics

`async` `async-await` `async-rust` `async-std` `rust`

## Description

async-std is a Rust asynchronous runtime and non-blocking I/O library. It serves as an asynchronous standard library, providing a set of alternatives to the core Rust library for managing concurrent tasks, networking, and file system access.

The project implements a standard-library-mirrored API, offering asynchronous versions of existing synchronous types to maintain a familiar interface. This approach allows for asynchronous Rust development using an interface that reflects the ergonomics of the language's standard library.

The runtime includes a task executor for scheduling and executing asynchronous operations across multiple threads. Its capability surface covers concurrent task execution, non-blocking input and output operations, and general runtime management.

## Tags

### Operating Systems & Systems Programming

- [Asynchronous I/O Libraries](https://awesome-repositories.com/f/operating-systems-systems-programming/asynchronous-i-o-libraries.md) — Provides a comprehensive library for performing non-blocking system I/O operations via event loops.
- [Asynchronous Task Execution](https://awesome-repositories.com/f/operating-systems-systems-programming/asynchronous-task-execution.md) — Enables the execution of non-blocking system tasks like networking and file access. ([source](https://cdn.jsdelivr.net/gh/async-rs/async-std@main/README.md))
- [Asynchronous Programming](https://awesome-repositories.com/f/operating-systems-systems-programming/rust-systems-programming/asynchronous-programming.md) — Provides a specialized environment for non-blocking I/O and concurrency in Rust.

### Programming Languages & Runtimes

- [Asynchronous Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-runtimes.md) — Provides an execution environment to schedule and run asynchronous futures across worker threads.
- [Asynchronous Standard Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-standard-libraries.md) — Provides a set of asynchronous alternatives to the core Rust library for networking and file access.
- [Dynamic Thread Scaling](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/execution-models/multi-threaded-execution/event-loops/dynamic-thread-scaling.md) — Implements dynamic adjustment of active worker threads based on system load and task demand.

### Software Engineering & Architecture

- [Asynchronous Mirroring](https://awesome-repositories.com/f/software-engineering-architecture/api-wrappers/standard-library-wrappers/asynchronous-mirroring.md) — Offers an asynchronous API that mirrors the Rust standard library for familiar ergonomics.
- [Concurrent Task Execution](https://awesome-repositories.com/f/software-engineering-architecture/concurrent-task-execution.md) — Implements a system for executing multiple communicating coroutines simultaneously to increase throughput.
- [Non-blocking I/O](https://awesome-repositories.com/f/software-engineering-architecture/concurrent-task-execution/non-blocking-i-o.md) — Provides a non-blocking I/O driver using OS primitives to monitor descriptors and wake tasks.
- [Asynchronous Task Executors](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers/asynchronous-thread-schedulers/custom-thread-executors/asynchronous-task-executors.md) — Manages the scheduling and execution of asynchronous futures on thread pools. ([source](https://cdn.jsdelivr.net/gh/async-rs/async-std@main/README.md))
- [Task Status Polling](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/polling-mechanisms/task-status-polling.md) — Provides a mechanism to drive task completion by polling the status of asynchronous objects.
- [Reactor Pattern Event Loops](https://awesome-repositories.com/f/software-engineering-architecture/reactor-pattern-event-loops.md) — Utilizes the reactor-executor pattern to separate event waiting from task execution logic.
- [Work-Stealing Queues](https://awesome-repositories.com/f/software-engineering-architecture/task-queues/work-stealing-queues.md) — Uses a work-stealing queue strategy to balance computational load across worker threads.

### Part of an Awesome List

- [Asynchronous Programming](https://awesome-repositories.com/f/awesome-lists/devtools/asynchronous-programming.md) — Async version of the standard library.
- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Async version of the Rust standard library.
