Project goals update — April 2026 (end of 2025H2) | Rust Blog
May 18, 2026 · Nurzhan Saken<br>on behalf of the Goals team
The 2025H2 Project Goal period has now concluded. Over these months, the Rust Project pursued 41 Project Goals, 13 of which were designated as Flagship Goals. This post contains curated updates on our progress since the last post and the final status for each of the goals (many of which continue as part of the 2026 period). Full details for any particular goal are available in its tracking issue.
Thanks to everyone who contributed!<br>Table of contents
Flagship: Beyond the &
Continue Experimentation with Pin Ergonomics
Design a language feature to solve Field Projections
Reborrow traits
Flagship: Flexible, fast(er) compilation
build-std
Production-ready cranelift backend
Promoting Parallel Front End
Relink don't Rebuild
Flagship: Higher-level Rust
Ergonomic ref-counting: RFC decision and preview
Stabilize cargo-script
Flagship: Unblocking dormant traits
Evolving trait hierarchies
In-place initialization
Next-generation trait solver
Stabilizable Polonius support on nightly
Other goal updates
Add a team charter for rustdoc team
Borrow checking in a-mir-formality
C++/Rust Interop Problem Space Mapping
Comprehensive niche checks for Rust
Const Generics
Continue resolving cargo-semver-checks blockers for merging into cargo
Develop the capabilities to keep the FLS up to date
Emit Retags in Codegen
Expand the Rust Reference to specify more aspects of the Rust language
Finish the libtest json output experiment
Finish the std::offload module
Getting Rust for Linux into stable Rust: compiler features
Getting Rust for Linux into stable Rust: language features
Implement Open API Namespace Support
MIR move elimination
Prototype a new set of Cargo "plumbing" commands
Prototype Cargo build analysis
reflection and comptime
Rework Cargo Build Dir Layout
Run more tests for GCC backend in the Rust's CI
Rust Stabilization of MemorySanitizer and ThreadSanitizer Support
Rust Vision Document
rustc-perf improvements
Stabilize public/private dependencies
Stabilize rustdoc doc_cfg feature
SVE and SME on AArch64
Type System Documentation
Unsafe Fields
Flagship: Beyond the &
Continue Experimentation with Pin Ergonomics
People involved: Frank King
Champions: compiler (Oliver Scherer), lang (TC)
Status: Continued
3 detailed updates available.
Frank King — comment from 2026-02-26
(Just come back from the Spring Festival)
(locally, no PR yet): design and implement the borrow checking algorithms of &pin
Reviewed Add Drop::pin_drop for pinned drops, to update the submodule book
Reviewed Implement coercions between &pin (mut|const) T and &(mut) T when T: Unpin, to do some refactors according to the reviewed messages.
Frank King — comment from 2026-03-16
Merged Implement coercions between &pin (mut|const) T and &(mut) T when T: Unpin.
Opened draft PR Implement borrowck for &pin mut|const $place. The implementation needs to be refined and self-reviewed before the community reviews.
Frank King — comment from 2026-04-16
Self-reviewed Implement borrowck for &pin mut|const $place. Found that the current approach of handling pinned borrows may be incorrect, as it failed to distinguish a pinned borrow from a coercion of a normal-to-pinned reference. The latter doesn't prevent a T: Unpin type from being moved, but the former does, which breaks the pin coercion test.
Design a language feature to solve Field Projections
People involved: Benno Lossin
Champions: lang (Tyler Mandry)
Status: Continued
5 detailed updates available.
Benno Lossin — comment from 2026-01-01
At the beginning of December, we set out to answer five important questions regarding the virtual places approach. We discussed four questions and arrived at answers for three.
The first question we looked at was question 3 Canonical Projections.
Next we looked at question 4 Non-Indirected Containers.
As the final question we answered, we looked at question 1 Field-by-Field Projections vs One-Shot Projections.
At the moment, we are investigating question 2 and I wrote a blog post with a potential solution that still needs feedback.
We started a Wiki Project to consolidate our knowledge in one place.
We implemented an algorithm to determine the type of a place expression.
Our plan is to continue this project goal in the next goal period.
Benno Lossin — comment from 2026-01-25
Earlier this month, Nadrieril Ding Xiang Fei and I held a meeting on autoref and method resolution in a world with field projections. This meeting resulted in a new page for the wiki on autoref.
Benno Lossin — comment from 2026-02-28
The first pull request of the lang experiment has just been merged: rust-lang/rust#152730
This PR enables the use of the field_of! macro to obtain a unique type for each field of a struct, enum variant, tuple, or union. We call these types field representing types (FRTs). When the base...