The Rust project is currently working towards a slate of 41 project goals, with 13 of them designated as Flagship Goals. This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated tracking issue on the rust-project-goals repository.
Flagship goals
“Beyond the `&`”
| Progress | |
| Point of contact | |
| Champions |
compiler (Oliver Scherer), lang (TC) |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
- 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.
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
“Flexible, fast(er) compilation”
| Progress | |
| Point of contact | |
| Champions |
cargo (Eric Huss), compiler (David Wood), libs (Amanieu d'Antras) |
| Task owners |
1 detailed update available.
rust-lang/rfcs#3873 has been merged and an FCP has been started on rust-lang/rfcs#3874 and rust-lang/rfcs#3875 - those both have some feedback for me to respond to that I'll get to as soon as I can
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
bjorn3, Folkert de Vries, [Trifecta Tech Foundation] |
No detailed updates available.
| Progress | |
| Point of contact | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
@dropbear32, @osiewicz |
No detailed updates available.
“Higher-level Rust”
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
cargo (Ed Page), lang (Josh Triplett), lang-docs (Josh Triplett) |
| Task owners |
1 detailed update available.
Key developments
- #146377 has been decided and merged
Blockers
- T-lang discussing CR / text direction feedback: https://github.com/rust-lang/rust/pull/148051#issuecomment-3638326490
- T-rustdoc deciding on and implementing how they want frontmatter handled in doctests
“Unblocking dormant traits”
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
Taylor Cramer, Taylor Cramer & others |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
Benno Lossin, Alice Ryhl, Michael Goulet, Taylor Cramer, Josh Triplett, Gary Guo, Yoshua Wuyts |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
Goals looking for help
Other goal updates
| Progress | |
| Point of contact | |
| Champions |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
compiler (Oliver Scherer), lang (Tyler Mandry), libs (David Tolnay) |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
bootstrap (Jakub Beránek), lang (Niko Matsakis), spec (Pete LeVasseur) |
| Task owners |
Pete LeVasseur, Contributors from Ferrous Systems and others TBD, |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
1 detailed update available.
Here's our January status update!
-
Yesterday, we posted an MCP for our retag intrinsics. While that's in progress, we'll start adapting our current prototype to remove our dependence on MIR-level retags. Once that's finished, we'll be ready to submit a PR.
-
We published our first monthly blog post about BorrowSanitizer.
-
Our overall goal for 2026 is to transition from a research prototype to a functional tool. Three key features have yet to be implemented: garbage collection, error reporting, and support for atomic memory accesses. Once these are complete, we'll be able to start testing real-world libraries and auditing our results against Miri.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
Amanieu d'Antras, Guillaume Gomez, Jack Huey, Josh Triplett, lcnr, Mara Bos, Vadim Petrochenkov, Jane Lusby |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
compiler (Manuel Drehwald), lang (TC) |
| Task owners |
Manuel Drehwald, LLVM offload/GPU contributors |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
(depending on the flag) |
1 detailed update available.
Update from the 2026-01-14 meeting:
#![register_tool] rust#66079
Tyler Mandry proposed FCP of the RFC#3808 and nominated it for a Lang discussion.
-Zdebuginfo-compression rust#120953
Wesley Wiser proposed stabilization: rust#150625.
Josh Triplett suggested trying to bring zlib-rs in the kernel as a case study.
-Zdirect-access-external-data rust#127488
rust#150494 was merged two days ago, what reminds is updating the documentation and stabilizing the feature.
There's an ongoing discussion about the feature on the Rust Zulip as well.
| Progress | |
| Point of contact | |
| Champions |
lang (Josh Triplett), lang-docs (TC) |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact |
|
| Champions |
cargo (Ed Page), compiler (b-naber), crates-io (Carol Nichols) |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact |
|
| Task owners |
|
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
1 detailed update available.
Project Goal Update
The prototype of this project goal is basically complete.
Current state
This project goal introduces build analysis support in Cargo, with the aim of making build behavior understandable across multiple invocations, not just a single run.
At a high level, the prototype:
- Records build metadata over time, including:
- rebuild reasons
- timing information
- relevant invocation context
- Stores this data locally in a structured log format suitable for later analysis
- Exposes the data via unstable
cargo reportsubcommands, such as:cargo report sessions- list session IDscargo report timings- HTML timing reportcargo report rebuilds- Why things rebuilt
See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-analysis for a more thorough usage documentation
Path towards stabilization
Before this feature can be stabilized, the following unresolved questions must be answered.
They might not block stabilization, but need to be evaluated if it is fine to leave for future.
cargo report commands
This is a stabilization blocker.
- [ ] Currently all three report commands (
sessions,rebuilds,timings) implicitly inspect global log files when if not in a workspace.- Should this be explicit with a flag?
- Should this be an error if not in a workspace?
- [ ] Bikeshed on command names
- Currently we have all nouns
- For
sessionsrunssimple but ambiguous- Just
loglikegit log historyuser-friendly (docker history, shellhistory, though not alike)
- For
timings:- Not controversial, as we have
--timingsflag already
- Not controversial, as we have
- For
rebuilds:rebuild-reasonsmore explicit
- For
- Or move to action-oriented verbs:
cargo report list-sessionscargo report analyze-timings(bazel analyze-profilehttps://bazel.build/docs/user-manual#analyze-profile)cargo report explain-rebuilds- Or question-oriented verbs:
cargo report what-ranmore general https://buck2.build/docs/developers/what-ran/cargo report why-rebuilt/why-reran
- Currently we have all nouns
cargo report sessions
- Currently it prints a human-readable output without a format for programmable use cases.
- Should we provide a programmable output (for example behind
--message-format=json)?
- Should we provide a programmable output (for example behind
cargo report rebuilds
- Extend the report from fingerprint to new hash (
-Cmetadata/-Cextra-filename)- We currently can't distinguish whether a fresh build is a real new build or just rustflags changed
- https://github.com/rust-lang/cargo/pull/16456#discussion_r2662364819
- Make each rebuilt reason more actionable and friendly for end-users.
- Should we log the fingerprint values being compared, or just the diff result?
- #t-cargo > logging unit fingerprint @ 💬
Log message schema
This is a stabilization blocker.
- [ ] Providing types for reading log messages
- We should export
LogMessageenum and related types incargo-util-schemas - Users may want to parse logs programmatically
- https://github.com/rust-lang/cargo/pull/16150#discussion_r2462065538
- We should export
- [ ] JSON schema evolution and versioning
- Should we version the schema explicitly in each message?
- Compatibility might be the same as https://doc.rust-lang.org/nightly/cargo/commands/cargo-metadata.html?highlight=compa#compatibility
- [ ] Message structure consistency
- Current log messages deviate from cargo's normal JSON message structure
- Should we align with existing cargo JSON output format, for example the
targetfield? - https://github.com/rust-lang/cargo/pull/16414#discussion_r2632724893
- https://github.com/rust-lang/cargo/pull/16303#discussion_r2565526807
- https://github.com/rust-lang/cargo/pull/16303#discussion_r2561862478
- [ ] Should we expose the entire
DirtyReasonenum as-is?- Currently exposes internal implementation details
- May want to create a separate public-facing enum
- Need to decide which variants are user-facing vs internal
- [ ] Check usefulness of each variant
- Some variants may be obsolete (e.g.,
RustflagsChangedmay be rare after-Cmetadatachanges) - Need audit of which variants actually occur in practice
- Remove or consolidate rarely-used variants
- Some variants may be obsolete (e.g.,
- [ ] Make dirty reasons end-user friendly
- Current reasons are technical (e.g., "local fingerprint type changed")
- Users need actionable messages (e.g., "file modified: src/lib.rs")
- [ ] Expose
targetandmode- Are they universal for all kind of units? We might want to rename mode to action, as an action kind of a unit.
- https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/build.20analysis.20log.20format/near/564781487
Log infrastructure
These are mostly future possibilities, not a stabilization blocker, as it is highly possible to do incremental improvements.
- [ ] log compression https://github.com/rust-lang/cargo/issues/16475
- [ ] log rotation https://github.com/rust-lang/cargo/issues/16471
- [ ] Is losing data on crashes ok? https://github.com/rust-lang/cargo/pull//16150#discussion_r2462056940
See also https://github.com/rust-lang/cargo/issues/16471#issuecomment-3724915770
Nested Cargo calls
See https://github.com/rust-lang/cargo/issues/16477.
Basically, we need to have a way to associate log files of nested Cargo calls.
That helps other tools as well as cargo fix itself.
This is a stabilization blocker.
How contributors can help
Future contributors can help by:
- picking up any linked issues below or in https://github.com/rust-lang/cargo/issues/15844
- building external tools utilizing the log messages, and providing feedback
- providing real-world feedback from large or unusual builds
A series of follow-up tasks has been cut to track remaining work:
- https://github.com/rust-lang/cargo/issues/16470
- https://github.com/rust-lang/cargo/issues/16471
- https://github.com/rust-lang/cargo/issues/16472
- https://github.com/rust-lang/cargo/issues/16473
- https://github.com/rust-lang/cargo/issues/16474
- https://github.com/rust-lang/cargo/issues/16475
- https://github.com/rust-lang/cargo/issues/16477
- https://github.com/rust-lang/cargo/issues/16488
| Progress | |
| Point of contact | |
| Champions |
compiler (Oliver Scherer), lang (Scott McMurray), libs (Josh Triplett) |
| Task owners |
oli-obk |
1 detailed update available.
- https://github.com/rust-lang/rust/pull/146923 has landed, and we even got the first contribs adding array support to reflection.
- there are lots more types and type information that we could support, and it's rather easy to add more. Happy to review any work here.
- https://github.com/rust-lang/rust/pull/150033 has landed, and I'm working on removing the
'staticrequirement in https://github.com/rust-lang/rust/pull/150161
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
1 detailed update available.
Status update January 15, 2026
Fine grain locking for build-dir was merged in https://github.com/rust-lang/cargo/pull/16155 and now available on nightly via -Zfine-grain-locking unstable flag. 🎉
There are some known issues we'd like to address before doing a formal call for testing. Notably, improving blocking messages, fixing potential thread starvation in Cargo's job queue when locks block, and investigate increasing rlimits to reduce risk of hitting max file descriptors for large projects.
I am hopeful that these issues will be resolved over the coming month and we can do a call for testing to start gathering feedback from the community on whether the new locking strategy improves workflows.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Task owners |
[Bastian Kersting](https://github.com/1c3t3a), [Jakob Koschel](https://github.com/jakos-sec) |
1 detailed update available.
The MCP (https://github.com/rust-lang/compiler-team/issues/951) has been seconded and is still waiting 3 days to be approved. Once that is done, we can proceed with merging the Tier 2 target.
| Progress | |
| Point of contact | |
| Task owners |
vision team |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact |
|
| Champions | |
| Task owners |
|
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions |
compiler (David Wood), lang (Niko Matsakis), libs (Amanieu d'Antras) |
| Task owners |
1 detailed update available.
rust-lang/rust#143924 has been merged, enabling scalable vector types to be defined on nightly, and I'm working on a patch to introduce unstable intrinsics/scalable vector types to std::arch
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |
No detailed updates available.
| Progress | |
| Point of contact | |
| Champions | |
| Task owners |