Asynchronous Programming

cat-asynchronous

Crates to help you deal with events independently of the main program flow, using techniques like futures, promises, waiting, or eventing.

Useful Crates

Async Basics

Futures

RecipeCratesCategories
Selecting Futuresfuturescat-asynchronous
Joining Futuresfuturescat-asynchronous
Map, then, either, flattenfuturescat-asynchronous
futures-util[![futures-util][c-futures-util-badge]][c-futures-util]cat-asynchronous

Tokio Runtime

RecipeCratesCategories
Basicstokiocat-asynchronous
Jointokiocat-asynchronous
Spawningtokiocat-asynchronous
IOtokiocat-asynchronous
Graceful Shutdowntokio_graceful_shutdowncat-asynchronous

Async Channels

Async Traits

RecipeCratesCategories
Async Traitsasync-traitcat-asynchronous

Streams

RecipeCratesCategories
Streamsfuturescat-asynchronous

Calling Async from Blocking Code and Vice Versa

Async Utilities

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.