- 👋 Introduction
- ⏳ 2026 goal process
- 1. Overview
- 2. Highlights
- 3. Looking to contribute?
- 4. Looking to fund?
- 5. Roadmaps
❱
- 5.1. Beyond the `&`
- 5.2. Binary size reduction
- 5.3. Constify all the things
- 5.4. Fast Builds
- 5.5. Just add async
- 5.6. Project Zero
- 5.7. Rust for Linux
- 5.8. Safety-Critical Rust
- 5.9. The Borrow Checker Within
- 6. Goals
❱
- 6.1. `f16b` Primitive Type
- 6.2. AArch64 Pointer Authentication using aarch64-unknown-linux-pauthtest target on Linux ELF platforms
- 6.3. Allow turbofishing late bound vars
- 6.4. Arbitrary Self Types
- 6.5. Architectural groundwork for expansion-time evaluation
- 6.6. Assumptions on Binders
- 6.7. Async Future Memory Optimisation
- 6.8. Async statemachine optimisation
- 6.9. BorrowSanitizer
- 6.10. build-std
- 6.11. C interop: `f80`, `f128` and `c_longdouble`
- 6.12. C++/Rust Interop Problem Space Mapping
- 6.13. Cargo cross workspace cache
- 6.14. Const Traits
- 6.15. Continue Experimentation with Pin Ergonomics
- 6.16. Continue resolving `cargo-semver-checks` blockers for merging into cargo
- 6.17. Contracts: primitive ownership assertions
- 6.18. Control over Drop semantics
- 6.19. Declarative (`macro_rules!`) macro improvements
- 6.20. Dictionary Passing Style Experiment
- 6.21. End-to-End Executable Rust Specification
- 6.22. Ergonomic ref-counting
- 6.23. Establish a Spot for Safety-Critical Lints in Clippy
- 6.24. Establish a User Research Team
- 6.25. Evolving the standard library API across editions
- 6.26. Expanding a-mir-formality to work better as a Rust type system spec
- 6.27. Experimental language specification
- 6.28. Explicit tail calls & `loop_match`
- 6.29. Field Projections
- 6.30. Finish the libtest json output experiment
- 6.31. Full Const Generics
- 6.32. High-Level ML optimizations
- 6.33. Immobile types and guaranteed destructors
- 6.34. Implement and Maintain MC/DC Coverage Support
- 6.35. Implement Open Rust Namespace Support
- 6.36. Implement Supertrait `auto impl`
- 6.37. Implement Verifiable Mirroring Prototype
- 6.38. Improve `rustc_codegen_cranelift` performance
- 6.39. Improving Unsafe Code Documentation in the Rust Standard Library
- 6.40. In-place initialization
- 6.41. Incremental Systems Rethought
- 6.42. Interactive cargo-tree: TUI for Cargo's dependency graph visualization
- 6.43. libc 1.0 release readiness
- 6.44. Library Trait Evolution Experiment
- 6.45. MIR move elimination
- 6.46. Native async fn dynamic dispatch in traits
- 6.47. Nightly support for function overloading in FFI bindings
- 6.48. Normative Documentation for Sound `unsafe` Rust
- 6.49. Open Enums
- 6.50. Polymorphic code generation experiment
- 6.51. Prepare TAIT + RTN for stabilization
- 6.52. Process-Safe Rustup Toolchain Operations
- 6.53. Promoting Parallel Front End
- 6.54. Prototype a new set of Cargo "plumbing" commands
- 6.55. Reborrow traits
- 6.56. Redesigning `super let`: Flexible Temporary Lifetime Extension
- 6.57. reflection and comptime
- 6.58. Reintroduce a FCW system to borrowck
- 6.59. Sized Hierarchy and Scalable Vectors
- 6.60. Specialization: minimal implementation
- 6.61. Stabilize and model Polonius Alpha
- 6.62. Stabilize Cargo SBOM precursor
- 6.63. Stabilize Cargo's linting system
- 6.64. Stabilize cargo-script
- 6.65. Stabilize FLS Release Cadence
- 6.66. Stabilize MemorySanitizer and ThreadSanitizer Support
- 6.67. Stabilize never type (`!`)
- 6.68. Stabilize public/private dependencies
- 6.69. Stabilize Rust for Linux compiler features
- 6.70. Stabilize the next-generation trait solver
- 6.71. Stabilize the Try trait
- 6.72. Stabilize Unsafe Fields
- 6.73. Stabilizing `f16`
- 6.74. Type System Documentation
- 6.75. View types experiment
- 6.76. Wasm Components
- 7. Frequently asked questions
- ⚙️ 2025H2 goal process
- 8. Overview
- 9. Goals
❱
- 9.1. Add a team charter for rustdoc team
- 9.2. Borrow checking in a-mir-formality
- 9.3. build-std
- 9.4. C++/Rust Interop Problem Space Mapping
- 9.5. Comprehensive niche checks for Rust
- 9.6. Const Generics
- 9.7. Continue Experimentation with Pin Ergonomics
- 9.8. Continue resolving `cargo-semver-checks` blockers for merging into cargo
- 9.9. Design a language feature to solve Field Projections
- 9.10. Develop the capabilities to keep the FLS up to date
- 9.11. Emit Retags in Codegen
- 9.12. Ergonomic ref-counting: RFC decision and preview
- 9.13. Evolving trait hierarchies
- 9.14. Expand the Rust Reference to specify more aspects of the Rust language
- 9.15. Finish the libtest json output experiment
- 9.16. Finish the std::offload module
- 9.17. Getting Rust for Linux into stable Rust: compiler features
- 9.18. Getting Rust for Linux into stable Rust: language features
- 9.19. Implement Open API Namespace Support
- 9.20. In-place initialization
- 9.21. MIR move elimination
- 9.22. Next-generation trait solver
- 9.23. Production-ready cranelift backend
- 9.24. Promoting Parallel Front End
- 9.25. Prototype a new set of Cargo "plumbing" commands
- 9.26. Prototype Cargo build analysis
- 9.27. Reborrow traits
- 9.28. reflection and comptime
- 9.29. Relink don't Rebuild
- 9.30. Rework Cargo Build Dir Layout
- 9.31. Run more tests for GCC backend in the Rust's CI
- 9.32. Rust Stabilization of MemorySanitizer and ThreadSanitizer Support
- 9.33. Rust Vision Document
- 9.34. rustc-perf improvements
- 9.35. Stabilizable Polonius support on nightly
- 9.36. Stabilize cargo-script
- 9.37. Stabilize public/private dependencies
- 9.38. Stabilize rustdoc `doc_cfg` feature
- 9.39. SVE and SME on AArch64
- 9.40. Type System Documentation
- 9.41. Unsafe Fields
- 10. Goals not accepted
- 11. Reports
❱
- 11.1. August Blog Post
- 11.2. July Blog Post
- 11.3. June Blog Post
- 11.4. May Blog Post
- 11.5. April Blog Post
- 11.6. March Blog Post
- 11.7. February Blog Post
- 11.8. January Blog Post
- 11.9. December Blog Post
- 11.10. November Blog Post
- 11.11. October Blog Post
- 11.12. September Blog Post
- 11.13. bootstrap Team Reports
❱
- 11.13.1. Recent updates
- 11.14. cargo Team Reports
❱
- 11.14.1. Recent updates
- 11.15. compiler Team Reports
❱
- 11.15.1. Recent updates
- 11.16. crates-io Team Reports
❱
- 11.16.1. Recent updates
- 11.17. infra Team Reports
❱
- 11.17.1. Recent updates
- 11.18. lang Team Reports
❱
- 11.18.1. Recent updates
- 11.19. lang-docs Team Reports
❱
- 11.19.1. Recent updates
- 11.20. libs Team Reports
❱
- 11.20.1. Recent updates
- 11.21. opsem Team Reports
❱
- 11.21.1. Recent updates
- 11.22. rustdoc Team Reports
❱
- 11.22.1. Recent updates
- 11.23. spec Team Reports
❱
- 11.23.1. Recent updates
- 11.24. types Team Reports
❱
- 11.24.1. Recent updates
- 📖 Learn about
- 12. Goal format
- 13. Goal motivations
- 14. Roadmaps
- 15. Invited goals
- 16. Point of contact
- 17. Team asks
- 18. Task owners
- 19. Design axioms
- 20. RFC
- 21. Archived goal lists
❱
- 21.1. 2025H1
❱
- 21.1.1. Goals
❱
- 21.1.1.1. "Stabilizable" prototype for expanded const generics
- 21.1.1.2. Bring the Async Rust experience closer to parity with sync Rust
- 21.1.1.3. build-std
- 21.1.1.4. Continue resolving `cargo-semver-checks` blockers for merging into cargo
- 21.1.1.5. Declarative (`macro_rules!`) macro improvements
- 21.1.1.6. Evaluate approaches for seamless interop between C++ and Rust
- 21.1.1.7. Experiment with ergonomic ref-counting
- 21.1.1.8. Expose experimental LLVM features for GPU offloading
- 21.1.1.9. Extend pubgrub to match cargo's dependency resolution
- 21.1.1.10. Externally Implementable Items
- 21.1.1.11. Finish the libtest json output experiment
- 21.1.1.12. Implement Open API Namespace Support
- 21.1.1.13. Implement restrictions, prepare for stabilization
- 21.1.1.14. Improve state machine codegen
- 21.1.1.15. Instrument the Rust standard library with safety contracts
- 21.1.1.16. Making compiletest more maintainable: reworking directive handling
- 21.1.1.17. Metrics Initiative
- 21.1.1.18. Model coherence in a-mir-formality
- 21.1.1.19. Next-generation trait solver
- 21.1.1.20. Nightly support for ergonomic SIMD multiversioning
- 21.1.1.21. Null and enum-discriminant runtime checks in debug builds
- 21.1.1.22. Optimizing Clippy & linting
- 21.1.1.23. Organize Rust All-Hands 2025
- 21.1.1.24. Prepare const traits for stabilization
- 21.1.1.25. Promoting Parallel Front End
- 21.1.1.26. Prototype a new set of Cargo "plumbing" commands
- 21.1.1.27. Publish first rust-lang-owned release of "FLS"
- 21.1.1.28. Publish first version of StableMIR on crates.io
- 21.1.1.29. Research: How to achieve safety when linking separately compiled code
- 21.1.1.30. Run the 2025H1 project goal program
- 21.1.1.31. Rust Vision Document
- 21.1.1.32. rustc-perf improvements
- 21.1.1.33. Scalable Polonius support on nightly
- 21.1.1.34. Secure quorum-based cryptographic verification and mirroring for crates.io
- 21.1.1.35. Stabilize cargo-script
- 21.1.1.36. Stabilize public/private dependencies
- 21.1.1.37. Stabilize tooling needed by Rust for Linux
- 21.1.1.38. SVE and SME on AArch64
- 21.1.1.39. Unsafe Fields
- 21.1.1.40. Use annotate-snippets for rustc diagnostic output
- 21.1.2. Goals not accepted
- 21.2. 2024H2
❱
- 21.2.1. Goals
❱
- 21.2.1.1. "Stabilizable" prototype for expanded const generics
- 21.2.1.2. Assemble project goal slate
- 21.2.1.3. Associated type position impl trait
- 21.2.1.4. Begin resolving `cargo-semver-checks` blockers for merging into cargo
- 21.2.1.5. Bring the Async Rust experience closer to parity with sync Rust
- 21.2.1.6. Const traits
- 21.2.1.7. Ergonomic ref-counting
- 21.2.1.8. Explore sandboxed build scripts
- 21.2.1.9. Expose experimental LLVM features for automatic differentiation and GPU offloading
- 21.2.1.10. Extend pubgrub to match cargo's dependency resolution
- 21.2.1.11. Implement "merged doctests" to save doctest time
- 21.2.1.12. Make Rustdoc Search easier to learn
- 21.2.1.13. Next-generation trait solver
- 21.2.1.14. Optimizing Clippy & linting
- 21.2.1.15. Patterns of empty types
- 21.2.1.16. Provided reasons for yanked crates
- 21.2.1.17. Resolve the biggest blockers to Linux building on stable Rust
- 21.2.1.18. Rust 2024 Edition
- 21.2.1.19. Scalable Polonius support on nightly
- 21.2.1.20. Stabilize cargo-script
- 21.2.1.21. Stabilize doc_cfg
- 21.2.1.22. Stabilize parallel front end
- 21.2.1.23. Survey tools suitability for Std safety verification
- 21.2.1.24. Testing infra + contributors for a-mir-formality
- 21.2.1.25. Use annotate-snippets for rustc diagnostic output
- 21.2.1.26. User-wide build cache
- 21.2.2. Goals not accepted
- 21.2.3. General notes
- ❓ How to
- 22. Propose a new goal
❱
- 22.1. Template for new goals
- 23. Report status on active goal
- 🔧 Running the goals program
- 24. The goals team
- 25. Running the program
❱
- 25.1. Team coordination
- 25.2. Call for proposals
- 25.3. Preparing the RFC
- 25.4. Merging the RFC
- 25.5. Authoring monthly updates
- 25.6. Sample texts
❱
- 25.6.1. Sample: Call for Proposal blog post
- 25.6.2. Sample: Text for the main README
- 25.6.3. Sample: Starting RFC text
- 25.6.4. Sample: Goals page
- 26. Technical reference
❱
- 26.1. Overall setup
- 26.2. Mdbook plugin details
- 26.3. cargo rpg command reference
❱
- 26.3.1. rfc, export RFC text
- 26.3.2. fcp, create the FCP merge comment
- 26.3.3. issues, creating tracking issues
- 26.3.4. updates, create monthly blog post summary