- 👋 Introduction
- ⏳ 2026 goal process
- 1. Overview
- 2. Highlights
- 3. Help wanted
- 4. Roadmaps
- 5. Reference: all goals and roadmaps
❱
- 5.1. Beyond the `&`
- 5.2. The Borrow Checker Within
- 5.3. Constify all the things
- 5.4. Just add async
- 5.5. Project Zero
- 5.6. Rust for Linux
- 5.7. Safety-Critical Rust
- 5.1. Expanding a-mir-formality to work better as a Rust type system spec
- 5.2. AArch64 Pointer Authentication using aarch64-unknown-linux-pauthtest target on Linux ELF platforms
- 5.3. Box notation for dyn async trait
- 5.4. Arbitrary Self Types
- 5.5. Assumptions on Binders
- 5.6. Async Future Memory Optimisation
- 5.7. Async statemachine optimisation
- 5.8. BorrowSanitizer
- 5.9. build-std
- 5.10. Cargo cross workspace cache
- 5.11. Stabilize Cargo's linting system
- 5.12. Prototype a new set of Cargo "plumbing" commands
- 5.13. Stabilize cargo-script
- 5.14. Continue resolving `cargo-semver-checks` blockers for merging into cargo
- 5.15. Full Const Generics
- 5.16. Stabilize Const Traits
- 5.17. Dictionary Passing Style Experiment
- 5.18. Alias + Move expr
- 5.19. Architectural groundwork for expansion-time evaluation
- 5.20. Case study for experimental language specification, with integration into project teams and processes
- 5.21. Field Projections
- 5.22. Project goal - High-Level ML optimizations
- 5.23. Improve `rustc_codegen_cranelift` performance
- 5.24. Improving Unsafe Code Documentation in the Rust Standard Library
- 5.25. In-place initialization
- 5.26. Incremental Systems Rethought
- 5.27. Interactive cargo-tree: TUI for Cargo's dependency graph visualization
- 5.28. C++/Rust Interop Problem Space Mapping
- 5.29. libc 1.0 release readiness
- 5.30. Evolving the standard library API across editions
- 5.31. Finish the libtest json output experiment
- 5.32. Declarative (`macro_rules!`) macro improvements
- 5.33. Control over Drop semantics
- 5.34. Implement and Maintain MC/DC Coverage Support
- 5.35. MIR move elimination
- 5.36. Immobile types and guaranteed destructors
- 5.37. Stabilize the next-generation trait solver
- 5.38. Open Enums
- 5.39. Implement Open Rust Namespace Support
- 5.40. Nightly support for function overloading in FFI bindings
- 5.41. Promoting Parallel Front End
- 5.42. Continue Experimentation with Pin Ergonomics
- 5.43. Stabilize and model Polonius Alpha
- 5.44. Stabilize public/private dependencies
- 5.45. Reborrow traits
- 5.46. Redesigning `super let`: Flexible Temporary Lifetime Extension
- 5.47. reflection and comptime
- 5.48. Prepare TAIT + RTN for stabilization
- 5.49. Stabilize Rust for Linux compiler features
- 5.50. Normative Documentation for Sound `unsafe` Rust
- 5.51. Establish a Spot for Safety-Critical Lints in Clippy
- 5.52. Sized Hierarchy and Scalable Vectors
- 5.53. Stabilize concrete type specialization
- 5.54. Stabilize MemorySanitizer and ThreadSanitizer Support
- 5.55. Stabilize Cargo SBOM precursor
- 5.56. Stabilize FLS Release Cadence
- 5.57. Stabilize never type (`!`)
- 5.58. Stabilize the Try trait
- 5.59. Stabilizing `f16`
- 5.60. Implement Supertrait `auto impl`
- 5.61. Explicit tail calls & `loop_match`
- 5.62. Type System Documentation
- 5.63. Stabilize Unsafe Fields
- 5.64. Establish a User Research Team
- 5.65. Wasm Components
- 6. Frequently asked questions
- ⚙️ 2025H2 goal process
- 7. Overview
- 8. Goals
❱
- 8.1. Develop the capabilities to keep the FLS up to date
- 8.2. Getting Rust for Linux into stable Rust: compiler features
- 8.3. Getting Rust for Linux into stable Rust: language features
- 8.4. Borrow checking in a-mir-formality
- 8.5. Reborrow traits
- 8.6. build-std
- 8.7. Prototype Cargo build analysis
- 8.8. Rework Cargo Build Dir Layout
- 8.9. Prototype a new set of Cargo "plumbing" commands
- 8.10. Stabilize cargo-script
- 8.11. Continue resolving `cargo-semver-checks` blockers for merging into cargo
- 8.12. Emit Retags in Codegen
- 8.13. Comprehensive niche checks for Rust
- 8.14. Const Generics
- 8.15. Ergonomic ref-counting: RFC decision and preview
- 8.16. Evolving trait hierarchies
- 8.17. Design a language feature to solve Field Projections
- 8.18. Finish the std::offload module
- 8.19. Run more tests for GCC backend in the Rust's CI
- 8.20. In-place initialization
- 8.21. C++/Rust Interop Problem Space Mapping
- 8.22. Finish the libtest json output experiment
- 8.23. MIR move elimination
- 8.24. Next-generation trait solver
- 8.25. Implement Open API Namespace Support
- 8.26. Promoting Parallel Front End
- 8.27. Continue Experimentation with Pin Ergonomics
- 8.28. Stabilizable Polonius support on nightly
- 8.29. Production-ready cranelift backend
- 8.30. Stabilize public/private dependencies
- 8.31. Expand the Rust Reference to specify more aspects of the Rust language
- 8.32. reflection and comptime
- 8.33. Relink don't Rebuild
- 8.34. Rust Vision Document
- 8.35. rustc-perf improvements
- 8.36. Stabilize rustdoc `doc_cfg` feature
- 8.37. Add a team charter for rustdoc team
- 8.38. SVE and SME on AArch64
- 8.39. Rust Stabilization of MemorySanitizer and ThreadSanitizer Support
- 8.40. Type System Documentation
- 8.41. Unsafe Fields
- 9. Goals not accepted
- 10. Reports
❱
- 10.1. March Blog Post
- 10.2. February Blog Post
- 10.3. January Blog Post
- 10.4. December Blog Post
- 10.5. November Blog Post
- 10.6. October Blog Post
- 10.7. September Blog Post
- 10.8. bootstrap Team Reports
❱
- 10.8.1. Recent updates
- 10.9. cargo Team Reports
❱
- 10.9.1. Recent updates
- 10.10. compiler Team Reports
❱
- 10.10.1. Recent updates
- 10.11. crates-io Team Reports
❱
- 10.11.1. Recent updates
- 10.12. infra Team Reports
❱
- 10.12.1. Recent updates
- 10.13. lang Team Reports
❱
- 10.13.1. Recent updates
- 10.14. lang-docs Team Reports
❱
- 10.14.1. Recent updates
- 10.15. libs Team Reports
❱
- 10.15.1. Recent updates
- 10.16. opsem Team Reports
❱
- 10.16.1. Recent updates
- 10.17. rustdoc Team Reports
❱
- 10.17.1. Recent updates
- 10.18. spec Team Reports
❱
- 10.18.1. Recent updates
- 10.19. types Team Reports
❱
- 10.19.1. Recent updates
- 📖 Learn about
- 11. Goal motivations
- 12. Roadmaps
- 13. Invited goals
- 14. Point of contact
- 15. Team asks
- 16. Task owners
- 17. Design axioms
- 18. RFC
- 19. Archived goal lists
❱
- 19.1. 2025H1
❱
- 19.1.1. Goals
❱
- 19.1.1.1. Expose experimental LLVM features for GPU offloading
- 19.1.1.2. Scalable Polonius support on nightly
- 19.1.1.3. Organize Rust All-Hands 2025
- 19.1.1.4. Use annotate-snippets for rustc diagnostic output
- 19.1.1.5. SVE and SME on AArch64
- 19.1.1.6. Bring the Async Rust experience closer to parity with sync Rust
- 19.1.1.7. build-std
- 19.1.1.8. Prototype a new set of Cargo "plumbing" commands
- 19.1.1.9. Stabilize cargo-script
- 19.1.1.10. Continue resolving `cargo-semver-checks` blockers for merging into cargo
- 19.1.1.11. Making compiletest more maintainable: reworking directive handling
- 19.1.1.12. Prepare const traits for stabilization
- 19.1.1.13. Externally Implementable Items
- 19.1.1.14. Experiment with ergonomic ref-counting
- 19.1.1.15. Model coherence in a-mir-formality
- 19.1.1.16. Improve state machine codegen
- 19.1.1.17. Finish the libtest json output experiment
- 19.1.1.18. Declarative (`macro_rules!`) macro improvements
- 19.1.1.19. Metrics Initiative
- 19.1.1.20. "Stabilizable" prototype for expanded const generics
- 19.1.1.21. Next-generation trait solver
- 19.1.1.22. Null and enum-discriminant runtime checks in debug builds
- 19.1.1.23. Implement Open API Namespace Support
- 19.1.1.24. Optimizing Clippy & linting
- 19.1.1.25. Promoting Parallel Front End
- 19.1.1.26. rustc-perf improvements
- 19.1.1.27. Stabilize public/private dependencies
- 19.1.1.28. Extend pubgrub to match cargo's dependency resolution
- 19.1.1.29. Implement restrictions, prepare for stabilization
- 19.1.1.30. Stabilize tooling needed by Rust for Linux
- 19.1.1.31. Rust Vision Document
- 19.1.1.32. Research: How to achieve safety when linking separately compiled code
- 19.1.1.33. Evaluate approaches for seamless interop between C++ and Rust
- 19.1.1.34. Nightly support for ergonomic SIMD multiversioning
- 19.1.1.35. Publish first rust-lang-owned release of "FLS"
- 19.1.1.36. Run the 2025H1 project goal program
- 19.1.1.37. Publish first version of StableMIR on crates.io
- 19.1.1.38. Instrument the Rust standard library with safety contracts
- 19.1.1.39. Unsafe Fields
- 19.1.1.40. Secure quorum-based cryptographic verification and mirroring for crates.io
- 19.1.2. Goals not accepted
- 19.2. 2024H2
❱
- 19.2.1. Goals
❱
- 19.2.1.1. Associated type position impl trait
- 19.2.1.2. Patterns of empty types
- 19.2.1.3. Scalable Polonius support on nightly
- 19.2.1.4. Assemble project goal slate
- 19.2.1.5. Rust 2024 Edition
- 19.2.1.6. Expose experimental LLVM features for automatic differentiation and GPU offloading
- 19.2.1.7. Testing infra + contributors for a-mir-formality
- 19.2.1.8. Use annotate-snippets for rustc diagnostic output
- 19.2.1.9. Bring the Async Rust experience closer to parity with sync Rust
- 19.2.1.10. Stabilize cargo-script
- 19.2.1.11. Begin resolving `cargo-semver-checks` blockers for merging into cargo
- 19.2.1.12. Const traits
- 19.2.1.13. Stabilize doc_cfg
- 19.2.1.14. Ergonomic ref-counting
- 19.2.1.15. Implement "merged doctests" to save doctest time
- 19.2.1.16. "Stabilizable" prototype for expanded const generics
- 19.2.1.17. Next-generation trait solver
- 19.2.1.18. Optimizing Clippy & linting
- 19.2.1.19. Stabilize parallel front end
- 19.2.1.20. Extend pubgrub to match cargo's dependency resolution
- 19.2.1.21. Resolve the biggest blockers to Linux building on stable Rust
- 19.2.1.22. Make Rustdoc Search easier to learn
- 19.2.1.23. Explore sandboxed build scripts
- 19.2.1.24. Survey tools suitability for Std safety verification
- 19.2.1.25. User-wide build cache
- 19.2.1.26. Provided reasons for yanked crates
- 19.2.2. Goals not accepted
- 19.2.3. General notes
- ❓ How to
- 20. Propose a new goal
❱
- 20.1. Template for new goals
- 21. Report status on active goal
- 🔧 Running the goals program
- 22. The goals team
- 23. Running the program
❱
- 23.1. Team coordination
- 23.2. Call for proposals
- 23.3. Preparing the RFC
- 23.4. Merging the RFC
- 23.5. Authoring monthly updates
- 23.6. Sample texts
❱
- 23.6.1. Sample: Call for Proposal blog post
- 23.6.2. Sample: Text for the main README
- 23.6.3. Sample: Starting RFC text
- 23.6.4. Sample: Goals page
- 24. Technical reference
❱
- 24.1. Overall setup
- 24.2. Mdbook plugin details
- 24.3. cargo rpg command reference
❱
- 24.3.1. rfc, export RFC text
- 24.3.2. fcp, create the FCP merge comment
- 24.3.3. issues, creating tracking issues
- 24.3.4. updates, create monthly blog post summary