Asynchronous Programming
Crates to help you deal with events independently of the main program flow, using techniques like futures, promises, waiting, or eventing.
Useful Crates
- Runtimes:
tokio
⮳,async-std
⮳,smol
⮳. - Futures/Streams:
futures
⮳,tokio-stream
⮳. - Async I/O:
tokio
⮳,async-std
⮳.
Async Basics
Recipe | Crates | Categories |
---|---|---|
Basic Example | ||
Differences with Other Languages | ||
Which Crate Provides What? | ||
Async Runtimes |
Futures
Recipe | Crates | Categories |
---|---|---|
Selecting Futures | ||
Joining Futures | ||
Map, then , either , flatten | ||
futures-util | [![futures-util][c-futures-util-badge]][c-futures-util] |
FIXME
Tokio Runtime
Recipe | Crates | Categories |
---|---|---|
Basics | ||
Join | ||
Spawning | ||
IO | ||
Graceful Shutdown |
FIXME
Async Channels
Async Traits
Recipe | Crates | Categories |
---|---|---|
Async Traits |
Streams
Recipe | Crates | Categories |
---|---|---|
Streams |
FIXME
Calling Async from Blocking Code and Vice Versa
Async Utilities
Recipe | Crates | Categories |
---|---|---|
Visualize the Structure of Asynchronous Tasks and Their Dependencies |
Related Topics
Networking / Websocket / HTTP
tokio-tungstenite
⮳, hyper
⮳, reqwest
⮳.
- Network Programming.
- Web Programming HTTP Client.
- Web Programming HTTP Server.
- Web Programming Websocket.
Concurrency: tokio::sync
, async-channel
⮳
- Concurrency.
- Concurrent Data Structures.
- Async Channels.