Roadmap

What follows is a list of deliverables and their current status. Each deliverable goes through several stages -- ranging from "experimentation" (people in the greater Rust community authoring crates) to "stabilization" (something official is decided). For each deliverable, we indicate how far along in the process we feel that it has reached, and indicate whether it is something we are actively working on, something which is paused for the time being, or something that is blocked on something else. For things that we are actively working on, we give dates as to our estimated time of completion.

Key

These emojis are used to represent the state of a deliverable:

SymbolMeaning
Done
🛠️Work is actively in progress
🤔Planning to do this, have an owner in mind
Planning to do this, need to find an owner
⏸️Paused; no active blockers, but we are not pursuing it now for reasons of overall bandwidth
🛑Blocked on some other deliverable, can't presently make progress
N/AInapplicable

Each deliverable name is also a link to a description of what it entails. In many cases, the emojis link to more information, completed documents, and so forth. We also include estimated completion dates.

Async fn everywhere

Read more.

DeliverableOwnerExper.Eval.RFCImplStable
Async fn in traitslang⏸️
Impl trait in traitslang⏸️
Type Alias Impl TraitlangSepEOY
Generic Associated TypeslangSepEOY
Dyn async traitlang⏸️
Dyn traitlang⏸️
Inline async fn supportlang⏸️
Async closureslang🛑
Async droplang🛑
Async testslang🛑
Recursive async fnlang🛑
Boxable async fnlang🛑

Easy acccess to borrowed data, reliable cancellation

Read more.

DeliverableOwnerExper.Eval.RFCImplStable
Capabilitylang, libsSep
Scope APIlibs🛠️

Flexible async iteration

Read more.

DeliverableOwnerExper.Eval.RFCImplStable
Async iteration traitslibs🤔
Generatorslang🤔
Async iteration traitlibs🤔

Portable across runtimes, easy to switch

Read more.

DeliverableOwnerExper.Eval.RFCImplStable
Async read, write traitlibs🤔
Async spawn, spawn-blocking traitlibs⏸️
Async timer traitlibs⏸️
Portable async functionality in stdliblibs🤔

Polish

Read more.

DeliverableOwnerExper.Eval.RFCImplStable
must_not_suspend lintlang🤔
Lint against calling blocking functions from async fnlang
Lint against large copieslang
Error messages for the most confusing scenarioscompilerN/AN/AN/Anow
Stacktraceslang

Tooling

Read more.

Tooling is presently in the experimentation stage, meaning that we are encouraging people to build things in the ecosystem that we can link here! If you have ideas that require support from the compiler or language, please raise them.

DeliverableOwnerExper.Eval.RFCImplStable
tokio-consoletokioN/AN/AN/A🛠️N/A

Testing

Read more.

Testing is presently in the experimentation stage, meaning that we are encouraging people to build things in the ecosystem that we can link here! If you have ideas that require support from the compiler or language, please raise them.

DeliverableOwnerExper.Eval.RFCImplStable
loomtokioN/AN/AN/A🛠️N/A

Documentation

Read more.

DeliverableOwnerExper.Eval.RFCImplStable
Async booklang, libsN/AN/A🤔

Slightly past the horizon

The follow deliverables are slightly past the current horizon, but we are starting to noodle on what they might mean, and trying to leave space to pursue these directions in the future: