Rust: Project Goals Update

f311a1 pts0 comments

Project goals update — April 2026 (end of 2025H2) | Rust Blog

May 18, 2026 &middot; 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...

rust from project field goals flagship

Related Articles