This Week in Rust 671
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @thisweekinrust.bsky.social on Bluesky or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? .
- Can safe Rust ever beat Google's C Brotli?
- Building a DMA based driver for the RP2350 I2C (safety not included)
- Advanced soft-bodies for games with the Rapier physics engine
- Supporting native Rust in Workers with the new Emscripten target for wasm-bindgen
- Rusty thoughts on "Parse, don't validate"
- The state of SIMD in Rust in 2026
- How do you stop being a Rust novice?
- We Have Named Arguments at Home: a reply to the blog post Arguing about arguments mentioned in the last issue
- Upstream Rust maintenance report (August-September 2026)
- Rust in the kernel? What about Rust without the kernel!
- Compiling the kernel with gccrs
- Listening to the radio with Rust
- Native support for Rust on the GPU
- How to speed up the Rust compiler in September 2026
- Building Real-Time Notifications with SSE and Pub/Sub
- Green Threads from Scratch
- A Type Stronger than the Sum of its Components
- Deser: Rethinking Rust Serialization
- Dropping Swift from our Bevy iOS crates
- Pining for Arc Downcasting in Rust
- Topcoat is pushing the boundary of server applications with Rust
- Rust Reborrowing, Aliasing, and Mutable References
- A very condensed introduction of the basics of Rust
- [video] Making Our GPUI App Interactive with State and Events
- [ES] Domain–Flow–Effects (DFE): an architecture designed for Rust
This week's crate is ying-profiler, a native Rust sampling memory profiler.
Thanks to Evan Chan for the self-suggestion!
Please submit your suggestions and votes for next week!
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization.
If you are a feature implementer and would like your RFC to appear in this list, add a call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
No calls for testing were issued this week by Rust, Cargo, Rustup or Rust language RFCs.
Let us know if you would like your feature to be tracked as a part of this list.
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
- unsynced - strace frontend fails on pwritev2 with offset -1 (current file offset)
- unsynced - Model hard links (link/linkat) instead of warning
- unsynced - Add an ext4 data=writeback persistence profile
- MemoryWhale - Cover friendly errors for incomplete
mwarguments - MemoryWhale - Lock down
mw --helpoutput - dataprof - Remote Parquet refusal messages should say to download the file when the server ignores Range
- dataprof -
ScoreBounds::dimension_scoresdocs still list estimated key counts as unbounded - dataprof - The progress
finishedevent under-counts rows when a row cap stops the incremental engine
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on Bluesky or Mastodon!
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on Bluesky or Mastodon!
546 pull requests were merged in the last week
- computing
crate_hashfrom metadata encoding instead of HIR (implements #94878) - detect missing else in let statement
- give noalias back to refs in closures
- implement forced keywords (
k#) - use SmallVec in LocalizedConstraintGraph
- add
DivandMulforComplex<{float}> - alloc: stabilise
Allocator - additional
NonZeroconversions - allow elided (
'static) lifetimes inthread_local! - implement
PartialEq>forVec,&[T],&mut [T],[T; N],&[T; N]and&mut [T; N] - make dropping an empty BTreeMap free
- stabilize SyncView
- stabilize
Box::take - stabilize
Result::into_{ok,err} - stabilize
funnel_shifts(includingconst) - stabilize
mem::conjure_zst - stabilize
vec_try_remove - use wrapping arithmetic in
from_str_radix
builtin-deps: add builtin dependencies manifest syntaxconfig: add build.profile, install.profilemetadata: mirror package features infeatures_v2builtin-deps: fix builtin dependencies manifest validationdiag: Don't report unused normal deps when static libs are skippedpackage: preserve feature metadata in normalized manifests
- correctly check that an item is not
doc(hidden)with--generate-link-to-definition - fix intra doc link resolution when a doc comment is composed of both inner and outer doc comment
- fix invalid jump to def link when
#[rustc_allow_incoherent_impl]is involved - fix quadratic naming of duplicate sidebar links
while_let_loop: detect the pattern when the loop has a label- add new
try_from_instead_of_from_strlint - don't suggest
Box::leakinnonnull_unchecked_on_box_ptr - fix
collapsible_matchconsuming/mutation checking - fix
match_str_casematching str inside or patterns - improve doc attr span tracking for proc-macro
- don't fail extension activation when the server fails to start
- add
type_matchrelevance for type-alias - coercion safe fn to unsafe fn
- complete 'false' in cfg attribute
- complete attr value inside string without quotes
- const eval cast of single-variant
enum - deduplicate 'derive' and 'test' attribute macro
- do not type match unknown type
- don't clear semantic tokens cache on refresh
- hover show impl header when impl with trait
- panic in async closures with higher-ranked trait bounds
- return UB instead of panicking when reading the discriminant of an uninhabited
enum
This week was fairly positive. We had no pure regressions, and most of the results came from a few architectural improvements with mixed or mostly positive impact. Some improvements also come from addressing previously triaged regression caused by missing no_alias annotation for references in closures.
The biggest improvement this week is in rustdoc, from tackling quadratic behaviour when generating sidebar links. This was reported by a user, but the effect didn't show up in our benchmarks, so we added a special stress test for it.
Triage done by @panstromek. Revision range: 3670d253..c1070d69
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) | 0.6% | [0.2%, 0.8%] | 8 |
| Regressions ❌ (secondary) | 1.4% | [0.1%, 5.8%] | 30 |
| Improvements ✅ (primary) | -0.6% | [-1.7%, -0.2%] | 192 |
| Improvements ✅ (secondary) | -1.5% | [-82.5%, -0.1%] | 101 |
| All ❌✅ (primary) | -0.6% | [-1.7%, 0.8%] | 200 |
0 Regressions, 2 Improvements, 6 Mixed; 3 of them in rollups 26 artifact comparisons made in total
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- No RFCs were approved this week.
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Rust
- Stop using dlltool for generating import libraries on MinGW
- Stabilize
ptr::try_cast_aligned - [disposition: close] 1.99 beta crater regression: overflow evaluating the requirement
- implement FCW for
rustc_allowed_through_unstable_modulesitems - fix
VisibleForLeakCheckinRegionOutlivesfast path - Stabilize
debug_closure_helpers - Support type-relative assoc item paths in generic param defaults & const param types
- FCW for
#[panic_handler]onunsafe fn. - Stabilize
optimizeattribute - Allow unary operand types to be inferred later
- Feat -
#[inline(always)] + #[target_feature(enable = "....")]#2 - Tracking Issue for
CStr::display - Syntactically reject leading parenthesized precise capturing lists in bare trait object types (
(use<…>)+)
Rust RFCs
Cargo
Compiler Team (MCPs only)
No Items entered Final Comment Period this week for Language Team, Language Reference, Leadership Council or Unsafe Code Guidelines. Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
New and Updated RFCs
Rusty Events between 2026-09-30 - 2026-10-28 🦀
- 2026-09-30 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2026-10-01 | Virtual | Rust Foundation & JetBrains
- 2026-10-02 | Virtual | Rust Girona
- 2026-10-03 | Virtual (Amsterdam, NL) | Bevy Game Development
- 2026-10-04 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-06 | Virtual (London, UK) | Women in Rust
- 2026-10-07 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-10-08 | Virtual (Berlin, DE) | Rust Berlin
- 2026-10-08 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-10-10 | Virtual (Gdansk, PL) | Stacja IT Trójmiasto
- 2026-10-10 | Hybrid (Kuala Lumpur, Malaysia) | Rust Malaysia Meetup
- 2026-10-13 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | EuroRust
- 2026-10-18 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-20 | Virtual (Washington, DC, US) | Rust DC
- 2026-10-21 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-10-22 | Virtual (Berlin, DE) | Rust Berlin
- 2026-10-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-10-27 | Virtual (London, UK) | Women in Rust
- 2026-10-09 | Hybrid (Kuala Lumpur, MY) | Rust Malaysia Meetup
- 2026-09-30 | Basel, CH | Rust Basel
- 2026-09-30 | Berlin, DE | Rust Berlin
- 2026-10-01 | Berlin, DE | Rust Berlin
- 2026-10-01 | Oxford, GB | Oxford ACCU/Rust Meetup.
- 2026-10-05 | München, DE | Rust Munich
- 2026-10-08 | Oslo, NO | Rust Oslo
- 2026-10-08 | Geneva, CH | Rust Geneva
- 2026-10-14 | Barcelona, ES | BcnRust
- 2026-10-14 - 2026-10-17 | Hybrid (Barcelona, ES) | EuroRust
- 2026-10-20 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2026-10-01 | Saint Louis, MO, US | STL Rust
- 2026-10-03 | Boston, MA, US | Boston Rust Meetup
- 2026-10-08 | Lehi, UT, US | Utah Rust
- 2026-10-08 | New York, NY, US | Rust NYC
- 2026-10-08 | San Diego, CA, US | San Diego Rust
- 2026-10-10 | Boston, MA, US | Boston Rust Meetup
- 2026-10-14 | Los Angeles, CA, US | Rust Los Angeles
- 2026-10-20 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-10-21 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-10-21 | San Francisco, CA, US | Bay Area Rust
- 2026-10-28 | Austin, TX, US | Rust ATX
- 2026-10-08 | Buenos Aires, AR | Rust en Español
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Please see the latest Who's Hiring thread on r/rust
The community is obnoxiously helpful. I asked a simple question on the Rust community Discord server. What is the best way to read a file in Rust? I expected a straightforward response. Instead, I got back a 2,000-word essay on the inner workings of IO, buffering, error handling, and ownership, plus links to four different blog posts and three different approaches depending on file size, and a working code example. ... The Rust community has weaponized education against me. I'm now a better engineer than I was yesterday against my will.
Thanks to MusicalNinjaDad for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by:
- nellshamrell
- llogiq
- ericseppanen
- extrawurst
- U007D
- mariannegoldin
- bdillo
- opeolluwa
- bnchi
- KannanPalani57
- tzilist
Email list hosting is sponsored by The Rust Foundation