Rust 2020 Roadmap Brainstorming
This document is “pre-populated” with the items from each team’s 2019 roadmap. Please go through and leave notes or comments about the progress on these items. Feel free to also add new items that you think might be good candidates for the 2020 roadmap. 

Cargo

  • Better support for cross compilation:
  • Focus on the cargo ecosystem by supporting plugins (custom commands):
  • Custom commands enable faster experimentation, bringing new and flexible workflows to users sooner rather than later.
  • Make plugins more discoverable.
  • Provide library crates for parts of cargo to make it easier to create plugins.
  • Compile times:
  • Investigate ways that cargo can help to reduce compilation time, including potentially distributing binaries for builds from crates.io.
  • Addressing technical debt:
  • There are a number of parts of cargo that could use refactoring, and we plan to spend some time on that.
  • Finishing "almost complete" work:
  • progress: Work continues on public/private dependencies

Community

  • Projects like RustBridge, event support, the YouTube channel and modernizing the community calendar will take priority.
  • Internationalization will also be a big subject over the next year. This both means making Rust more accessible to non-English speakers and growing our global reach.

Compiler

  • Improving "core strength" by lowering raw compilation times and also generating better code (which in turn can help with compilation times)
  • Improved IDE integration, including support for typed completions
  • Extracting parts of rustc into libraries, which are easier to understand and maintain but also help in developing a Rust specification
  • Supporting lang team in key feature development, such as around async fn support, or improvements to the trait system
  • Improving our documentation and organization, helping to make it clearer what is going on at any given time, and how people can get involved.
  • Improve the onboarding process of our new contributors, by making documentation (rustc-guide and rustdocs) better, by finding ways to have the more knowledgeable people share their knowledge, maybe around the learning wg (for instance giving lectures), by mentoring new contributors, etc.

Notable projects:
  • Parallelizing rustc, which should help with improving raw compilation times and also increasing IDE responsiveness.
  • Introducing MIR optimizations, which will improve the quality of our generated code, but also may help reduce compilation time by giving LLVM less work to do (LLVM remains a large percentage of overall compilation time).
  • One project worth calling out in more detail is the RLS 2.0 effort.

Crates.io

We’ve seen an increasing number of “supply chain attacks”, which attempt to compromise open source packages and publish malicious code, across a number of ecosystems. Improving the security of crates.io [this wording is horrible and implies that we have security issues vs this is a proactive thing] should be a major priority

Dev tools

  • rustdoc:
  • Try to fix team issues? The current situation is quite bad and is slowing down the PRs quite a lot
  • Continue the cleanup (it moved forward a lot lately!)