Roadmap

What follows is a list of high-level goals, like "async fn everywhere", that capture some part of the improved user experience. Each goal has associated initiatives, which are particular streams of work within that goal. Each goal and each initiative have an associated owner -- in some cases multiple owners -- who are the people responsible for ensuring that the goal/initiative is making progress. If you click on a goal/initiative, you will get a high-level description of its impact. That is, how the experience of using async Rust is going to change as a result of this work.

We categorize the goals and initiatives into four states:

StateMeaning
Done.
🦀In progress: Work is ongoing!
Help wanted: Seeking an owner to pursue this! Talk to the wg leads if you are interested.
💤Paused: we are waiting to work on this until some other stuff gets done.

Some goals and initiatives have further "how to help" instructions for those wanting to contribute. These are marked by the 🛠️ symbol.

Impact and milesetones

Clicking on active initiatives also shows a list of milestones. These milestones (things like "write an evaluation doc") indicate the planned work ahead of us. We meet every 2 weeks to assess our progress on these milestones and to update the list as needed.

Overview

DeliverableStateProgressOwner
🔻 Async fn everywhere🦀▰▰▱▱▱▱tmandry
  ↳ Type Alias Impl Trait🦀▰▰▰▰▰▱oli-obk
  ↳ Generic Associated Types🦀▰▰▰▰▰▱jackh726
  ↳ Fundamentals🦀▰▰▱▱▱▱tmandry
  ↳ Boxable async functions💤▰▱▱▱▱▱
  ↳ Async main and tests🦀▰▰▱▱▱▱vincenzopalazzo
🔻 Scoped spawn and reliable cancellation💤▰▱▱▱▱▱
  ↳ Capability💤▰▱▱▱▱▱
  ↳ Scope API💤▰▱▱▱▱▱
🔻 Async iteration💤▰▰▱▱▱▱
  ↳ Async iteration trait💤▰▰▰▱▱▱
  ↳ Generator syntax💤▰▰▱▱▱▱
🔻 Portable across runtimes🦀▰▰▱▱▱▱nrc
  ↳ Read/write traits🦀▰▰▱▱▱▱
  ↳ Timer traits💤▰▱▱▱▱▱
  ↳ Spawn traits💤▰▱▱▱▱▱
  ↳ Runtime trait💤▰▱▱▱▱▱
🔻 Polish [🛠️]🦀▰▰▰▱▱▱eholk
  ↳ Error messages💤▰▰▰▱▱▱
  ↳ Must not suspend lint🦀▰▰▰▰▱▱
  ↳ Blocking function lint💤▰▰▱▱▱▱
  ↳ Lint against large copies💤▰▰▱▱▱▱
  ↳ Cleaner async stacktraces💤▰▱▱▱▱▱
  ↳ Precise generator captures🦀▰▱▱▱▱▱
  ↳ Sync and async behave the same🦀▰▱▱▱▱▱
🔻 Tooling🦀▰▰▱▱▱▱pnkfelix
  ↳ Tokio console🦀▰▰▰▰▱▱eliza weisman
  ↳ Crashdump debugging🦀▰▰▱▱▱▱michaelwoerister
🔻 Documentation🦀▰▰▱▱▱▱
  ↳ Async book💤▰▰▱▱▱▱
🔻 Testing💤▰▱▱▱▱▱
  ↳ tbd💤▰▱▱▱▱▱
🔻 Threadsafe portability💤▰▱▱▱▱▱
  ↳ tbd💤▰▱▱▱▱▱
🔻 Keyword generics🦀▰▱▱▱▱▱yoshuawuyts
  ↳ Async overloading🦀▰▱▱▱▱▱yoshuawuyts