Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Help wanted Help Wanted

This section contains goals that are in need of help.

Looking for contributors

The goals below are looking for a contributor to do the implementation work. The goal summaries include details of the expected time commitment and work duration. If you might be interested in helping with a goal, please join the rust-lang Zulip and post a message in the #project-goals/2026-workshop channel: tell us a bit about yourself, and mention us (the goals team) in that message, like Hello @T-goals!. You could also write to the goals team at goals-team@rust-lang.org! We would love to help you learn more about it.

Box notation for dyn async trait Help wanted

Niko Matsakis (point of contact), Niko Matsakis (lang champion)

Introduce .box notation and use it to enable dyn dispatch for traits with async methods. The initial scope is foo.method().box where method() returns a dyn-compatible RPITIT. In the future .box could be used more generally but before expanding it we would like to see progress on the work towards in-place initialization.

Needs contributor: Niko Matsakis is able to devote 1h/wk to support an experienced contributor or a cohort of contributors in driving this design forward as a lang experiment. This is a challenging problem that will require modifying various parts of the compiler and would also benefit from modeling in a-mir-formality.

Prototype a new set of Cargo “plumbing” commands Help wanted

Ed Page (point of contact)

  1. Refactor Cargo to allow hacks in proposed cargo-plumbing commands to be removed (cargo-plumbing#82).
  2. Round out proposed commands (issues)
  3. Finalize the message formats (cargo-plumbing#18)

Needs contributor: This goal needs contributors to refactor Cargo internals, implement remaining plumbing commands, optimize performance, and iterate on output schemas. The work is primarily in rust-lang/cargo and crate-ci/cargo-plumbing. Estimated time commitment: TBD.

Ergonomic ref-counting: Share trait and move expressions Help wanted

Niko Matsakis (point of contact), Niko Matsakis (lang champion)

Implement and prototype two foundational improvements for ergonomic ref-counting: (1) a Share trait that semantically identifies types where cloning creates an alias to the same underlying value, and (2) move expressions (move($expr)) that allow precise control over what closures capture and when. These changes lay groundwork for future ergonomic improvements while delivering immediate value, with prototypes targeted for summer 2026.

Needs contributor: This is a medium complexity problem. Niko Matsakis would like to mentor this goal with either an experienced contributor or a cohort of folks who know Rust but not the compiler. It is estimated that the goal will take about 6 months to implement for a cohort with minimal compiler hacking experience.

Control over Drop semantics Help wanted

@thunderseethe (point of contact)

Allow users to easily control the drop semantics of struct fields, letting them change drop order, and disable recursive destructors to make working with cross-language bindings easier.

  • Allow cross-language bindings to expose struct fields without compatibility hazards, and
  • Make all code that disables default destructor behavior more convenient to use in Rust.

Needs contributor: This goal needs a contributor to implement a lang experiment in rustc and write an RFC. The work is a focused compiler feature touching drop semantics and destructor codegen. Estimated time commitment: TBD.

Implement Open Rust Namespace Support Help wanted

Ed Page (point of contact)

Navigate the cross-team design work to get RFC 3243 implemented.

Needs contributor: This goal needs contributors to help complete the implementations in Cargo, rustc, and crates.io. The work spans multiple repositories and involves cross-team coordination. Estimated time commitment: TBD.

Stabilize public/private dependencies Help wanted

Ed Page (point of contact)

Implement and stabilize the MVP of public dependencies described in RFC #3516. Public dependencies allow crates to declare dependencies whose types are meant to be exposed in the public API.

Needs contributor: This goal needs a contributor to work with the compiler team on identifying and implementing the minimal lint subset needed for stabilization. The work spans rustc (lint implementation) and Cargo (dependency metadata). Estimated time commitment: TBD.

Prepare TAIT + RTN for stabilization Help wanted

TC (point of contact), TC (lang champion), lcnr (types champion)

Prepare TAIT (type alias impl trait) and return type notation (RTN) for stabilization together, giving Rust a coherent story for naming and bounding previously unnameable and unboundable types. TAIT lets users name opaque types like closures, async blocks, and complex iterators without boxing. RTN enables bounds like T::method(..): Send, solving the “Send bound” problem and unblocking widespread use of async fn in traits. This goal also extends RTN to async closures via a new RFC. Full stabilization is blocked on the next-gen trait solver work and is intended to happen late this year.

Needs contributor: The majority of the impl work for TAIT and RTN has been done however the syntactic design for RTN and async closures is incomplete. We’re seeking someone willing to help work on the RFC and explore the design space as well as to finalize impl details.

Stabilize Cargo SBOM precursor Help wanted

Sergey Davidoff (point of contact)

Progress towards an MVP version of Cargo SBOM support by resolving known issues in Cargo’s SBOM precursor feature and finalizing the RFC.

Needs contributor: This goal needs contributors to help with testing, resolving known issues in Cargo’s SBOM precursor, and converting downstream tooling like cargo-cyclonedx. The work is primarily in the rust-lang/cargo repository. Estimated time commitment: TBD.

Looking for funds

The goals below are looking for funding. The goal summaries include details of the expected time commitment and work duration. If you might be interested in helping to fund a goal, please join the rust-lang Zulip and post a message in the #project-goals/2026-workshop channel or write to the goals team at goals-team@rust-lang.org.

Architectural groundwork for expansion-time evaluation

Tyler Mandry (point of contact), Vadim Petrochenkov (compiler champion), Oliver Scherer (types champion)

Lay the architectural groundwork for functions that can be evaluated during macro expansion. This speculative work focuses on “queryifying” the resolver and implementing a restricted trait solver mode, enabling future language features like macro fn and compiler-integrated interop tools.

Needs funding: This goal needs funding to proceed.

Improve rustc_codegen_cranelift performance

bjorn3 (point of contact)

This goal aims to improve the rust development experience through faster incremental code generation with rustc_codegen_cranelift. We additionally want to fix several long-standing bugs that currently prevent rustc_codegen_cranelift from being used for popular crates.

Needs funding: This goal needs funding to proceed.

Control over Drop semantics Help wanted

@thunderseethe (point of contact)

Allow users to easily control the drop semantics of struct fields, letting them change drop order, and disable recursive destructors to make working with cross-language bindings easier.

  • Allow cross-language bindings to expose struct fields without compatibility hazards, and
  • Make all code that disables default destructor behavior more convenient to use in Rust.

Needs contributor: This goal needs a contributor to implement a lang experiment in rustc and write an RFC. The work is a focused compiler feature touching drop semantics and destructor codegen. Estimated time commitment: TBD.

Stabilize concrete type specialization

Tyler Mandry (point of contact)

Follow stabilization of the new trait solver this year by stabilizing a subset of specializing impls: Impls that follow the [always applicable] rule. This roughly corresponds to specializing trait impls on concrete types.

Stabilize the Try trait

Tyler Mandry (point of contact)

Stabilize the Try trait, which customizes the behavior of the ? operator.