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
- Switching to Rust's own mangling scheme on nightly | Rust Blog
- Interview with Jan David Nose | Rust Blog
- This Development-cycle in Cargo: 1.92 | Inside Rust Blog
Foundation
Project/Tooling Updates
- SeaORM 2.0: Nested ActiveModel and Cascade Operations
- Symbolica 1.0: Symbolic mathematics in Rust
- APT Rust requirement raises questions
Observations/Thoughts
- Running real-time Rust
- A look at Rust from 2012
- Making the case that Cargo features could be improved to alleviate Rust compile times
- How Cloudflare uses Rust to serve (and break) millions of websites at 50+ millions requests per second
- [audio] Netstack.FM episode 15 — Pingora with Edward and Noah from Cloudflare
- [video] Grind: Java Deserves Modern Tooling*
Rust Walkthroughs
- Rust Unit Testing: File reading
- Practical Performance Lessons from Apache DataFusion
- Describing binary data with Deku
Miscellaneous
- Rust For Linux Kernel Co-Maintainer Formally Steps Down
- JetBrains supports the open source Rust projects Ratatui and Biome
- filtra.io | Toyota's "Tip Of The Spear" Is Choosing Rust
Crate of the Week
This week's crate is grapheme-utils, a library of functions to ergonomically work with UTF graphemes.
Thanks to rustkins 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.
- No calls for testing were issued this week by Rust, Cargo, Rust language RFCs or Rustup.
Let us know if you would like your feature to be tracked as a part of this list.
RFCs
Rust
Rustup
If you are a feature implementer and would like your RFC to appear on the above list, add the new 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.
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.
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!
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.
- Rustikon 2026 | CFP closes 2025-11-24 | Warsaw, Poland | 2025-03-19 - 2025-03-20 | Event Website
- TokioConf 2026 | CFP closes 2025-12-08 | Portland, Oregon, USA | 2026-04-20
- RustWeek 2026 | CFP closes 2025-12-31 | Utrecht, The Netherlands | 2026-05-19 - 2026-05-20
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
456 pull requests were merged in the last week
Compiler
- allow unnormalized types in drop elaboration
- avoid encoding non-constness or non-asyncness in metadata
- fix MaybeUninit codegen using GVN
- fix suggestion for the
cfg!macro - handle cycles when checking impl candidates for
doc(hidden) - inherent const impl
- recommend using a HashMap if a HashSet's second generic parameter doesn't implement BuildHasher
- reduce confusing
unreachable_codelints - replace OffsetOf by an actual sum of calls to intrinsic
- sess: default to v0 symbol mangling on nightly
- turn moves into copies after copy propagation
- warn against calls which mutate an interior mutable
const-item
Library
- add
bit_widthfor unsignedNonZero<T> - alloc: fix
Debugimplementation ofExtractIf - make SIMD intrinsics available in
const-contexts - match
<OsStringasDebug>::fmtto that of str - see if this is the time we can remove
layout::size_align - unwrap ret ty of
iter::ArrayChunks::into_remainder - v0 mangling for std on nightly
- hashbrown: add
HashTablemethods related to the raw bucket index - hashbrown: allow providing the key at insertion time for EntryRef
Cargo
docs(guide): When suggesting alt dev profile, link to related issuefeat(generate-lockfile): Add unstable --publish-time flagfeat(tree): Add more native completionsfix(bindeps): do not propagate artifact dependency to proc macro or build depsfix(config-include): disallow glob and template syntaxfix(package): exclude target/package from backupsrefactor(timings): separate data collection and presentationtest(config-include): include always relative to including config- enable
CARGO_CFG_DEBUG_ASSERTIONSin build scripts based on profile - feat: emit a warning when both
package.publishand--indexare specified - test: re-enable test since not flaky anymore
Rustdoc
- rustdoc-json: add rlib path to ExternalCrate to enable robust crate resolution
- rustdoc: make mergeable crate info more usable
Clippy
explicit_deref_methods: don't lint inimpl Deref(Mut)- add
large-error-ignoredconfig-knob - fix
useless_asrefsuggests wrongly when used in ctor - fix wrongly unmangled macros for
transmute_ptr_to_ptrandtransmute_bytes_to_str - taking a raw pointer on a union field is a safe operation
Rust-Analyzer
- add
unsafe(…)attribute completion - add pretty number for
add_explicit_enum_discriminant - add semantic tokens for deprecated items
- add deprecated semantic token for extern crate shorthand
- add assist to convert char literal
- allow inferring array sizes
- basic support for declarative attribute/derive macros
- completion
= $0after keyval cfg predicate - derive ParamEnv from GenericPredicates
- don't suggest duplicate
constcompletionsraw - enhance
remove_parenthesesassist to handle return expressions - extract function panics on more than one usage of variable in macro
- fix hit
incorrect_caseonno_manglestatic items - fix not applicable on
andforreplace_method_eager_lazy - fix not fill guarded match arm for
add_missing_match_arms - fix trailing newline in
tool_path - fix field completion in irrefutable patterns
- fix formatting request blocking on
crate_def_mapquery - fix parameter info with missing arguments
- fix some inference of patterns
- include all target types with paths outside package root
- infer range patterns correctly
- make dyn inlay hints configurable
- make postfix completion handle all references correctly
- move visibility diagnostics for fields to correct location
- never remove parens from prefix ops with valueless return/break/continue
- parse cargo config files with origins
- remove some deep normalizations from infer
- rewrite method resolution to follow rustc more closely
- show no error when parameters match macro names
- implement precedence for
print_hir - improve assist qualified to top when on first segment
- infer range pattern fully
- integrate postcard support into proc-macro server CLI
- optimize
SmolStr::clone4-5x speedup inline, 0.5x heap (slow down) - perf: improve start up time
- perf: prime trait impls in cache priming
- perf: produce less progress reports
- perf: reduce allocations in
try_evaluate_obligations - print more macro information in
DefMapdumps - proc-macro-srv: reimplement token trees via immutable trees
- support multiple variant for
generate_from_impl_for_enum - use inferred type in “extract type as type alias” assist and display inferred type placeholder
_inlay hints
Rust Compiler Performance Triage
Only a handful of performance-related changes landed this week. The largest one was changing the default name mangling scheme in nightly to the v0 version, which produces slightly larger symbol names, so it had a small negative effect on binary sizes and compilation time.
Triage done by @kobzol. Revision range: 6159a440..b64df9d1
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.9% | [0.3%, 2.7%] | 48 |
| Regressions ❌ (secondary) |
0.9% | [0.2%, 2.1%] | 25 |
| Improvements ✅ (primary) |
-0.5% | [-6.8%, -0.1%] | 33 |
| Improvements ✅ (secondary) |
-0.5% | [-1.4%, -0.1%] | 53 |
| All ❌✅ (primary) | 0.4% | [-6.8%, 2.7%] | 81 |
1 Regression, 2 Improvements, 5 Mixed; 1 of them in rollups 28 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:
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.
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
- Make closure capturing have consistent and correct behaviour around patterns
- misc coercion cleanups and handle safety correctly
- Implement
TryFrom<char>forusize. - Contracts: primitive ownership assertions:
ownedandblock - const validation: remove check for mutable refs in final value of const
No Items entered Final Comment Period this week for Compiler Team (MCPs only), Cargo, 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
- RFC: Exhaustive traits. Traits that enable cross trait casting between trait objects.
- CMSE calling conventions
RUSTC_ALLOW_UNSTABLE_<feature>: aRUSTC_BOOTSTRAPalternative- Target Stages, an improvement of the incremental system
Upcoming Events
Rusty Events between 2025-11-26 - 2025-12-24 🦀
Virtual
- 2025-11-26 | Virtual (Girona, ES) | Rust Girona | Silicon Girona
- 2025-11-27 | Virtual (Buenos Aires, AR) | Rust en Español
- 2025-11-30 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-12-02 | Virtual (London, UK) | Women in Rust
- 2025-12-03 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
- 2025-12-03 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-12-04 | Virtual (Berlin, DE) | Rust Berlin
- 2025-12-05 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2025-12-06 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-12-07 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2025-12-09 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-12-10 | Virtual (Girona, ES) | Rust Girona
- 2025-12-11 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2025-12-11 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2025-12-16 | Virtual (Washington, DC, US) | Rust DC
- 2025-12-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-12-17 | Virtual (Girona, ES) | Rust Girona
- 2025-12-18 | Virtual (Berlin, DE) | Rust Berlin
- 2025-12-23 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
Asia
- 2025-12-08 | Tokyo, JP | Rust Global: Tokyo
- 2025-12-20 | Bangalore, IN | Rust Bangalore
Europe
- 2025-11-26 | Bern, CH | Rust Bern
- 2025-11-27 | Augsburg, DE | Rust Meetup Augsburg
- 2025-11-27 | Barcelona, ES | BcnRust
- 2025-11-27 | Berlin, DE | Rust Berlin
- 2025-11-27 | Copenhagen, DK | Copenhagen Rust Community
- 2025-11-27 | Edinburgh, UK | Rust and Friends
- 2025-11-28 | Prague, CZ | Rust Prague
- 2025-12-03 | Girona, ES | Rust Girona
- 2025-12-03 | Oxford, UK | Oxford ACCU/Rust Meetup.
- 2025-12-04 | Vienna, AT | Rust Vienna
- 2025-12-08 | Dortmund, DE | Rust Dortmund
- 2025-12-08 | Paris, FR | Rust Paris
- 2025-12-10 | München, DE | Rust Munich
- 2025-12-10 | Reading, UK | Reading Rust Workshop
- 2025-12-16 | Bergen, NO | Rust Bergen
- 2025-12-16 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2025-11-26 | Austin, TX, US | Rust ATX
- 2025-11-26 | Phoenix, AZ, US | Desert Rust
- 2025-11-27 | Mountain View, CA, US | Hacker Dojo
- 2025-11-29 | Boston, MA, US | Boston Rust Meetup
- 2025-12-02 | Chicago, IL, US | Chicago Rust Meetup
- 2025-12-04 | México City, MX | Rust MX
- 2025-12-04 | Saint Louis, MO, US | STL Rust
- 2025-12-05 | New York, NY, US | Rust NYC
- 2025-12-06 | Boston, MA, US | Boston Rust Meetup
- 2025-12-11 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2025-12-11 | Lehi, UT, US | Utah Rust
- 2025-12-11 | Mountain View, CA, US | Hacker Dojo
- 2025-12-11 | San Diego, CA, US | San Diego Rust
- 2025-12-13 | Boston, MA, US | Boston Rust Meetup
- 2025-12-16 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-12-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-12-20 | Boston, MA, US | Boston Rust Meetup
- 2025-12-24 | Austin, TX, US | Rust ATX
Oceania
- 2025-12-11 | Brisbane City, QL, AU | Rust Brisbane
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
Also: a program written in Rust had a bug, and while it caused downtime, there was no security issue and nobody's data was compromised .
Thanks to Michael Voelkl 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