The 2024H2 goal candidates
This page lists all goals that have been proposed thus far.
Project goals
Project goals represent a specific goal that the Rust teams would like to make progress on. Each goal is proposed by an owner, someone who will take responsibility for moving it forward. The goal identifies the problem and provides a rough outline of the solution along with an action plan for the work to be done. Teams review the goal to see that they are aligned with the plan and priorities of the owner and they can provide the various asks that the owner has made (e.g., to review RFCs and provide prompt feedback). If they are aligned, they teams accept the goal, and it becomes official.
Flagship goals
Of the project goals, a small number are selected as flagship goals. These are the most impactful and ambitious goals that we will be the focus of our public messaging. The goal owner puts extra "top-down" effort into helping to shape these goals into a workable plan and find resources to complete that plan.
Factors considered to determine flagship goals:
- Impact: which Rust users will be affected and how?
- Shovel-ready: do we have a fairly concrete idea how to proceed, or is there early research to be done figuring things out?
- Unsurprising: a good flagship goal represents an established consensus. It's not a good thing if we declare a flagship goal that takes the Rust community (especially the Rust teams!) completely by surprise.
Would you like to propose a goal?
Do it! Instructions for proposing goals can be found here.*
Flagship goals
Accepted and proposed flagship goals
2024 goal | Working towards | Owner | RFC |
---|---|---|---|
Stabilize Rust 2024 edition | TC | RFC #3501 | |
Bringing the Async Rust experience closer to parity with sync Rust | Async/sync parity | nikomatsakis, tmandry | RFC #3657 |
Resolving the biggest blockers to Linux building on stable Rust | Linux builds on stable Rust | nikomatsakis, joshtriplett | RFC #3658 |
Project goals under consideration
Top candidates
2024 goal | Accepted or proposed in | Owner | Team |
---|---|---|---|
Assemble goal slate | RFC #3614 | nikomatsakis | LC |
Cargo Script | #22 | epage | Cargo, Lang |
Next-generation trait solver | (not yet accepted) | lcnr | Types |
Formal model of Rust | (not yet accepted) | nikomatsakis | Types |
Polonius on Nightly | (not yet accepted) | lqd | Types |
Stabilize Associated type positiom impl trait | (not yet accepted) | oli-obk | Types, Lang |
Patterns of empty types | (not yet accepted) | Nadrieril | Lang |
Ergonomic ref-counting | (not yet accepted) | jkelleyrtp | Lang, Libs-API |
Min generics const argument | (not yet accepted) | BoxyUwU | Types |
Const traits | (not yet accepted) | feel1-dead | Lang, Libs-API |
Extend pubgrub to match cargo's dependency resolution | (not yet accepted) | Eh2406 | Cargo |
Other proposed goals
These are goals that are still being workshopped. They are sorted roughly by progress and likelihood to become top candidates. In many cases the work being described will definitely happen, but it is not clear if they ought to become a "Project Goal".
2024 goal | Owner | Teams |
---|---|---|
Contracts and invariants | pnkfelix | Lang, Compiler |
Relaxing the Orphan Rule | JoshTriplett | Lang |
Goals not accepted
Deferred flagship goals
The following goals were deemed to be too large in scope and insufficiently baked to be considered for flagship goals in this round (however noble their intent). In many cases we have identified smaller pieces of these goals and pulled them out as project goals. Looking forward we will continue iterating to determine if the goal can be used in a future round of goal planning.
2024 goal | Working towards | Owner | Teams |
---|---|---|---|
Ergonomics initiative: clones and partial borrows | Entry-level Rust developer experience | jkelleyrtp | Lang |
Faster iterative builds | Entry-level Rust dev experience | jkelleyrtp | Lang, Compiler |
Rust for Scientific Computing | Rust for Scientific Computing | ZuseZ4 | Lang, Compiler |
Towards seamless C support | joshtriplett | Lang, Compiler |