This Week in Rust 669
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? .
- Where Does Rust Belong on Arduino? If it belongs.
- CO3: Toward the Optimal FFI
- Why building a Rust LSP is hard · Rust Glancer
- Developing provably correct Rust code with Verus
- Principles for fast Tokio applications
- Trying to Make a Loop Auto-Vectorize
- Does Rust Support Inheritance? Yes, No, and Maybe, All in the Same File
- Shipping Rust static libraries without symbol collisions
- A visual guide to Rust async
- Rust Projects - Write a Redis Clone - Version 3.0.0
- Can You Use ESP32 as SWD Programmer for STM32 with Rust?
- Time and Panic Traps in WebAssembly: It Compiles, but It Crashes in the Browser
- One Lock to Rule Them All
- Operators of death: checked arithmetic in Rust
- Rust generics: from Static to Dynamic dispatch
- [video] Your First GPUI App - Building a Desktop UI in Rust
This week's crate is zenjpeg, a pure Rust JPEG encoder and decoder.
Thanks to Kornel for the 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.
Cargo
No calls for testing were issued this week by Rust, 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.
- No Calls for participation were submitted this week.
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.
- No Calls for papers or presentations were submitted this week.
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!
523 pull requests were merged in the last week
- garbage-collect old incremental compilation sessions
- less clones and more cleanup for
rustc_builtin_macros - perf: read hygiene data once when hashing syntax contexts
- use
DenseBitfordrop_live_atin liveness tracing - use
Box<[Word]>for word storage inDenseBitSet
- generalise (most) impls on
Box - implement
Thread::os_id - reserve items in
Extendimplementations - stabilize
Vec::from_fn - stabilize
core::mem::DropGuard - stabilize
unsafe_cell_access
fix(git): For git cli, tell users what config we aren't forwarding on errorfix(install): use packaged lockfile by default- fix(trim-paths)!: unremap file in one JSON doc
- lower the lint level of
manual_readmeandnon_kebab_case_binstoallow - specify
--editioninmessagestests - test: add more comprehensive workspace feature unification tests
- don't treat a raw identifier as a raw string prefix
- fix adjustment of
max_widthwithin macros - reserve width for
constwhen formatting inline const blocks
map_clone: avoid suggestions after type-changing coercions- fix
collapsible_matchsuggesting wrongly for conditional compiled code - enable
manual_swapin const contexts
- cache macro-expanded roots when climbing ancestors
- do not fill unstable methods in "Implement default members"
- do not panic on json with invalid field name
- don't panic on doc comments attached to literal expressions
- fix
hir::Typeowner mismatches between anon consts - fix panic when trait solver re-enters itself
- fix panic when we call
impls_traitfor self type of builtin derive impls for generic types - stop at eager macro recursion overflow
- ide: fix doc comment offset calculation
There were almost no regressions this week, and several performance improvements! Though some of them were reverts of regressions from a previous week. #162422 improved the performance of Polonius, whose performance is getting closer to the previous NLL borrow checker.
Triage done by @Kobzol. Revision range: 656a9da1..20d35a3a
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) | - | - | 0 |
| Regressions ❌ (secondary) | 0.4% | [0.1%, 0.9%] | 3 |
| Improvements ✅ (primary) | -0.7% | [-4.4%, -0.1%] | 199 |
| Improvements ✅ (secondary) | -0.9% | [-2.7%, -0.1%] | 222 |
| All ❌✅ (primary) | -0.7% | [-4.4%, -0.1%] | 199 |
0 Regressions, 5 Improvements, 5 Mixed; 2 of them in rollups 40 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
- Stabilize
debug_closure_helpers - Additional NonZero conversions
- Implement Default for NumBuffer
- Allow elided ('static) lifetimes in
thread_local! - Stabilize
funnel_shifts(includingconst) - Stabilize
mem::conjure_zst - Stabilize
Result::into_{ok,err} - windows: stabilise inherit_handles
- rustc: Stabilize the WebAssembly
wide-arithmeticfeature - Prevent mutating the global environment pointer in
CommandExt::execand opt to use execve and resolve path manually - alloc: stabilise
Allocator - Disallow accesses through an Index projection when a sibling ConstantIndex projection has been moved out of
- Allow unary operand types to be inferred later
Cargo
Leadership Council
No Items entered Final Comment Period this week for Rust RFCs, Compiler Team, Language Team, Language Reference 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-16 - 2026-10-14 🦀
- 2026-09-16 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-09-17 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-09-18 | Virtual | Rust Girona
- 2026-09-20 | Virtual (Bengaluru, IN) | Embedded Rust Discord
- 2026-09-20 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-22 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-24 | Virtual (Berlin, DE) | Rust Berlin
- 2026-09-24 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-09-29 | Virtual (London, UK) | Women in Rust
- 2026-09-30 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2026-10-02 | Virtual | Rust Girona
- 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-13 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-14 - 2026-09-16 | Berlin, DE | Oxidize 2026
- 2026-09-17 | Dortmund, DE | Rust Dortmund
- 2026-09-22 | Prague, CZ | Rust Prague
- 2026-09-24 | Aarhus, DK | Rust Aarhus
- 2026-09-24 | Amsterdam, NL | Rust Developers Amsterdam Group
- 2026-09-24 | Frankfurt, DE | Rust Rhein-Main
- 2026-09-26 | Stockholm, SE | Stockholm Rust
- 2026-09-28 | Augsburg, DE | Rust Meetup Augsburg
- 2026-09-29 | Manchester, UK | Rust Manchester
- 2026-09-30 | Basel, CH | Rust Basel
- 2026-10-05 | München, DE | Rust Munich
- 2026-10-08 | Oslo, NO | Rust Oslo
- 2026-10-10 | Geneva, CH | Rust Geneva
- 2026-10-14 | Barcelona, ES | BcnRust
- 2026-09-16 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-09-16 | San Francisco, CA, US | Bay Area Rust
- 2026-09-17 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-09-17 | Mountain View, CA, US | Hacker Dojo
- 2026-09-19 | Boston, MA, US | Boston Rust Meetup
- 2026-09-22 | Chicago, IL, US | Chicago Rust Meetup
- 2026-09-23 | Austin, TX, US | Rust ATX
- 2026-09-23 | Austin, TX, US | Rust ATX
- 2026-09-24 | Atlanta, GA, US | Rust Atlanta
- 2026-09-26 | Boston, MA, US | Boston Rust Meetup
- 2026-10-01 | Saint Louis, MO, US | STL Rust
- 2026-10-03 | Boston, MA, US | Boston Rust Meetup
- 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-09-29 | Barton, AU | Canberra Rust User Group
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
Every so often I am told about some maths fact that I can only assume someone went to prison for discovering
Thanks to Chayim Refael Friedman 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