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? Subscribe here.
Updates from Rust Community
Official
Newsletters
Project/Tooling Updates
Observations/Thoughts
- From Go to Rust
- What Zig felt like, coming from Rust
- I want extern "fil-c"
- Four levels of in-place initialization
- Protecting the Rust standard library from accidental breakage
- Zero-copy wgpu rendering inside an Electron app
- The Lint That Would Have Caught It Is Off by Default
- [video] [series] Implementing State Machines (Part 1)
Rust Walkthroughs
Research
Miscellaneous
Crate of the Week
This week's crate is tokio_with_wasm, a crate that lets a single tokio codebase run both natively and in web browsers.
Thanks to Kim Dong-Hyun for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
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.
Call for Participation; projects and speakers
CFP - Projects
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.
- sysknife - Export the audit chain rows, not just the verify verdict
- sysknife - Expose the read-only actions as MCP tools without exposing AptUpdate
- sysknife - Record a current Fedora Atomic validation run
- YantrikDB - Migrate the 7 remaining manual SAVEPOINT sites to SavepointGuard (panic-unwind hole + 7 hand-rolled copies of the unwind rule)
- RustAPI - chore: issue templates, drop missing triage label, MSRV 1.85 (easy)
- KayaDB - test: one extra named malformed WAL / command-frame decoder case (easy)
- Cordial - GameActivity.getWaterfallInsets has the wrong JNI descriptor
- Cordial - ro.soc.manufacturer is answered with an empty string
- Cordial - Map which FLog channels take a number and which take a severity name
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!
CFP - Events
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!
Updates from the Rust Project
613 pull requests were merged in the last week
Compiler
- inline some hot new-solver functions
- stabilize
-Zprofile-sample-use - stabilize
extern "custom" - make
ShardedHashMap::with_capacitysplit capacity between shards - three new-solver speedups
- use
TyOrConstInferVarin the next solver, fix #158441
Library
- add
core::num::Complex Arc: remove unnecessaryfmt::Displayuse for overflow assertion- core/num: implement feature
float_nan_to - core: implement
FusedIteratorforStepBy - experiment: add
core::cmp::smallestandcore::cmp::largest Iterator::{min,max}(_by_key)should use overriddenmin/max/ltoffload!function-like macro- optimize CStr backing slice bounds checks
- single-byte ASCII searcher for
StrSearcherImpl(pattern.rs)
Cargo
trim-paths: honor workspace prefix override from envfrontmatter: Don't panic on a short closing fence before a non-ASCII charmin-publish-age: removeregistry.min-publish-age- enable
-Zembed-metadata=noby default on nightly Cargo - re-stabilize build-dir layout v2
- remove unremap file when running cargo clean -p in new build-dir layout
Rustdoc
- add basic
splatsupport torustdoc - add new
unused_footnote_definitionrustdoc lint - also warn if an invalid
docattribute is used on a macro invocation
Clippy
- add
option_zip_nonelint - clean-up
used_underscore_* - fix ICE on
unnecessary_rest_patternfor TyAlias - fix
unfulfilled_lint_expectationsincorrectly triggered by#[expect(clippy::let_and_return)] - fix duplicate diagnostics for
min_rust_version_invalid_attr - perf: check fn kind before the expansion walk in
missing_const_for_thread_local - perf: resolve the callee before the expansion walk in
VecArgs::hir - perf: run
in_external_macroafter the cheap checks in five hot lint paths
Rust-Analyzer
- parser: frontmatter error path for UTF-8
- avoid panic for mismatched associated type parameters
- check original type for
replace_arith_op - consider loop containing
break exprto diverge ifexpris diverging - do not panic when defined in macro from input
- don't error on tail comma for some macro
- emit E0600 when unary
!/-is applied to unsupported type - every workspace should have a proc-macro server
- fix
rustc_privatesupport forrustc_proc_macro - lower range expressions in hir lowering
- return an error const to the solver when consteval fails
- offer
replace_arithon references to ints - support Reborrow and CoerceShared built-in derives
Rust Compiler Performance Triage
There were almost no regressions this week, while the next trait solver saw several significant performance improvements!
Triage done by @kobzol. Revision range: 771916f9..8fa1c96c
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.4% | [0.2%, 0.5%] | 6 |
| Regressions ❌ (secondary) |
0.6% | [0.2%, 1.0%] | 17 |
| Improvements ✅ (primary) |
-0.5% | [-1.7%, -0.2%] | 166 |
| Improvements ✅ (secondary) |
-2.3% | [-16.0%, -0.1%] | 219 |
| All ❌✅ (primary) | -0.5% | [-1.7%, 0.5%] | 172 |
0 Regressions, 6 Improvements, 7 Mixed; 4 of them in rollups 50 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:
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Tracking Issues & PRs
Rust
- Always escape grapheme extenders in
str::escape_debug - feat: add symmetric PartialEq impls for Vec, &[T], &mut [T] versus Cow<'_, [T]>
- stabilize smart pointer map functions
- Stabilize
windows_process_extensions_main_thread_handle - Add
Defaultimplementation forstd::sync::Once - target_features: sse (or at least avx2) is incompatible with soft-float ABI
- Remove
From<!> for Treservation impl - stabilize
Box::take - Extend
dropping_{references,copy_types}lints todrop_in_place - lint on more incorrect usages of
core::ffi::c_void - Make let-else respect macro_rules expr metavariable grouping
Cargo
Compiler Team (MCPs only)
No Items entered Final Comment Period this week for Rust RFCs, 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
- Change
i686-pc-windows-msvcfrom Tier 1 with host tools => Tier 1 without host tools - Owning references (
&own T)
This RFC will appear in the Call for Testing section of the next issue (#) of This Week in Rust (TWiR).
You may remove the call-for-testing label. Please feel free to leave the call-for-testing label in place if you would like this RFC to appear again in another issue of TWiR.
Upcoming Events
Rusty Events between 2026-08-19 - 2026-09-16 🦀
Virtual
- 2026-08-19 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-08-20 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-08-20 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-08-21 | Virtual | Rust Girona
- 2026-08-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-08-26 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2026-08-27 | Virtual (Berlin, DE) | Rust Berlin
- 2026-08-28 | Virtual | Rust Girona
- 2026-08-31 | Virtual | Rust 🦀 Maven
- 2026-09-01 | Virtual | Rust 🦀 Maven
- 2026-09-02 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-09-02 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-09-04 | Virtual | Rust Girona
- 2026-09-06 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-08 - 2026-09-11 | Hybrid (Montreal, CA) | RustConf 2026
- 2026-09-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-09-08 | Virtual (London, UK) | Women in Rust
- 2026-09-10 | Virtual | Rust 🦀 Maven
- 2026-09-10 | Virtual (Berlin, DE) | Rust Berlin
- 2026-09-10 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-09-15 | Virtual (Washington, DC, US) | Rust DC
- 2026-09-16 | Hybrid (Vancouver, CA) | Vancouver Rust
Africa
- 2026-09-08 | Johannesburg, ZA | Johannesburg Rust Meetup
Asia
- 2026-08-22 | Bangalore, IN | Rust Bangalore
- 2026-08-22 | Delhi, IN | Rust Delhi
- 2026-08-22 | Noida, IN | SciPy India
- 2026-08-29 | Pune, IN | Rust Pune
Europe
- 2026-08-20 | Berlin, DE | Rust Berlin
- 2026-08-20 | Frankfurt, DE | Rust Rhein-Main
- 2026-08-21 | Edinburgh, UK | Rust and Friends
- 2026-08-26 | Dresden, DE | Rust Dresden
- 2026-08-27 | Manchester, UK | Rust Manchester
- 2026-08-29 | Stockholm, SE | Stockholm Rust
- 2026-09-08 | Paris, FR | Rust Paris
- 2026-09-14 - 2026-09-16 | Berlin, DE | Oxidize 2026
- 2026-09-15 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2026-08-19 | Hybrid (Vancouver, CA) | Vancouver Rust
- 2026-08-19 | San Francisco, CA, US | Bay Area Rust
- 2026-08-20 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-08-20 | Mountain View, CA, US | Hacker Dojo
- 2026-08-20 | New York, NY, US | Rust NYC
- 2026-08-26 | Austin, TX, US | Rust ATX
- 2026-08-26 | Los Angeles, CA, US | Rust Los Angeles
- 2026-08-27 | Atlanta, GA, US | Rust Atlanta
- 2026-09-03 | Mountain View, CA, US | Hacker Dojo
- 2026-09-03 | Saint Louis, MO, US | STL Rust
- 2026-09-08 - 2026-09-11 | Hybrid (Montreal, CA) | RustConf
- 2026-09-08 | Montreal, QC, CA | Rust Foundation
- 2026-09-08 - 2026-09-11 | Montreal, QC, CA | RustConf 2026
- 2026-09-09 | Montreal, CA | Women in Rust
- 2026-09-10 | San Diego, CA, US | San Diego Rust
- 2026-09-15 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-09-16 | Hybrid (Vancouver, CA) | Vancouver Rust
Oceania
- 2026-08-27 | Melbourne, AU | Rust Melbourne
- 2026-08-27 | Melbourne, AU | Rust Melbourne
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.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
ass-bind is peak
– Clar Fon on rust-zulip discussion "assumptions on binders" abbreviations
Thanks to Theemathas 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