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
- GCC Front-End For Rust- June 2025 Monthly report
- gitoxide - July 25
- Announcing NAPI-RS v3
- Rust: Clippy performance status update
- How to write Rust in the kernel: part 3
- State of the Art Dynamic Matrix Multiplication
- Tako: A Lightweight Async Web Framework on Tokio and Hyper
- stochastic-rs: High-Performance Stochastic Process Simulation in Rust
- StackSafe: Taming Recursion in Rust Without Stack Overflow
Observations/Thoughts
- "Bypassing" specialization in Rust or How I Learned to Stop Worrying and Love Function Pointers
- The borrowchecker is what I like the least about Rust
- On Reifying Nested Closures in Rust
- Supporting faster file load times with memory optimizations in Rust
- Rickrolling Turso DB (SQLite rewrite in Rust)
- Rust unit testing: simplify your tests
Rust Walkthroughs
- The Signal Protocol Explained #1: Implementing the Post-Quantum Extended Diffie-Hellman (PQXDH) protocol in Rust
- Structured GCP logging in Rust using tracing
Crate of the Week
This week's crate is index_permute, a library for in-place clone-less permutation on mutable slices.
Despite a lack of suggestions this week, llogiq is fairly pleased with his choice.
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, Rust language RFCs, Cargo 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.
- AerynOS - moss (package manager): Add
--check
option tomoss inspect
- AerynOS - lichen (installer): Add internet connection requirement notice
- AerynOS - infra (build server / related services): Make all services print out their version and git ref on start
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 X (formerly Twitter) 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 X (formerly Twitter) or Mastodon!
Updates from the Rust Project
425 pull requests were merged in the last week
Compiler
- parse
const trait Trait
- unify
CoroutineWitness
sooner in typeck, and stall coroutine obligations based off ofTypingEnv
- miri: add support for global constructors (i.e. life before main)
- miri: non-deterministically truncate reads/writes
Library
- add experimental
backtrace-trace-only
std feature - add
uX::strict_sub_signed
- constify Try, From, TryFrom and relevant traits
- constify
Index
traits - constify
Option
methods - make slice comparisons const
- stabilize
const_float_round_methods
- stabilize
const_slice_reverse
Cargo
Rustdoc
Clippy
unsafe_derive_deserialize
: do not considerpin!()
asunsafe
- don't trigger
unused_trait_names
in macros - fix
empty_with_brackets
span handling - fix
filter_map_bool_then
wrongly suggests macro definitions - fix
missing_inline_in_public_items
false positive on functions withextern
- fix
needless_range_loop
false positive on array literals - fix
never_loop
forget to removebreak
in suggestion - fix
ptr_arg
suggests changes when it's actually better not to bother - fix
ptr_as_ptr
suggests wrongly with turbo fish - fix capacity overflow in
single_match
with deref patterns - fix false positive in
useless_attribute
withredundant_imports
- fix: ignore
pattern_type_mismatch
when external macro owns the match large_enum_variant
: dont suggestBox
inno_std
mode- propose to exchange ranges only when it is safe to do so
- various improvements to the
incompatible_msrv
lint - warn about
const
instability wrt MSRV - warn about types not meeting MSRV
Rust-Analyzer
- add AsMut to minicore
prelude::v1
- add
AsRef
andBorrow
forgenerate_mut_trait_impl
- add
Deref
→DerefMut
forgenerate_mut_trait_impl
- add ide-assist, generate single field
struct
From
- add tailexpr
&
→&mut
forgenerate_mut_trait_impl
- support
cfg_select!
- ide-assist: generate Deref transitive
- apply adjusts to pats and exprs when doing pat analysis
- disable tests in flycheck if
cfg.setTest
is set to false - fix search of raw labels and lifetimes
- infer lifetimes for GATs in expression/pattern position
Rust Compiler Performance Triage
Fairly busy week with improvements outweighing regressions. Most of the regressions were considered acceptable given the circumstances (such as landing a long awaited feature). By far the biggest win comes from being a bit smarter about hashing certain information inside of DefPathHash
. Since hashing happens quite a lot in th compiler's query system, optimizing when hashing happens can have large performance impacts.
Triage done by @rylev. Revision range: a9fb6103..3f9f20f7
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.4% | [0.1%, 0.9%] | 47 |
Regressions ❌ (secondary) |
0.8% | [0.1%, 2.7%] | 69 |
Improvements ✅ (primary) |
-0.8% | [-4.1%, -0.2%] | 122 |
Improvements ✅ (secondary) |
-0.7% | [-2.5%, -0.0%] | 143 |
All ❌✅ (primary) | -0.5% | [-4.1%, 0.9%] | 169 |
3 Regressions, 8 Improvements, 8 Mixed; 8 of them in rollups 35 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.
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
- [rustdoc] Display unsafe attrs with edition 2024 unsafe() wrappers.
- [disposition: close] take into account the num of processes by ulimit
- Port the proc macro attributes to the new attribute parsing infrastructure
- stop specializing on
Copy
- Remove
[T]::array_chunks(_mut)
- Port #[macro_export] to the new attribute parsing infrastructure
Rust RFCs,
Cargo
No Items entered Final Comment Period this week for 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
Upcoming Events
Rusty Events between 2025-07-23 - 2025-08-20 🦀
Virtual
- 2025-07-24 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2025-07-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-07-30 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2025-07-31 | Virtual (Berlin, DE) | Rust Berlin
- 2025-08-02 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-08-03 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-06 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-08-10 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-12 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-14 | Virtual (Berlin, DE) | Rust Berlin
- 2025-08-17 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-19 | Virtual (Santa Clara, CA, US) | UCSC Extension Community
- 2025-08-19 | Virtual (Washington, DC, US) | Rust DC
- 2025-08-20 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-09-02 - 2025-09-05 | Hybrid (Seattle, WA, US) | RustConf
Africa
2025-07-23 | Ikot Akpaden, Mkpat Enin, Akwa Ibom State, NG | Rust Nigeria
Asia
- 2025-07-26 | Bangalore, IN | Rust Bangalore
Europe
- 2025-07-23 | Dortmund, DE | Rust Dortmund
- 2025-07-24 | Edinburgh, UK | Rust and Friends
- 2025-07-24 | Nuremberg/Nürnberg, DE | Rust Nuremberg
- 2025-07-26 | Stockholm, SE | Stockholm Rust
- 2025-07-29 | Manchester, UK | Rust Manchester
- 2025-07-29 | Prague, CZ | Rust Czech Republic
- 2025-07-30 | Amsterdam, NL | Rust Developers Amsterdam Group
- 2025-07-31 | Augsburg, DE | Rust Meetup Augsburg
- 2025-08-06 | Girona, ES | Rust Girona
- 2025-08-13 | Cambridge, UK | Cambridge Rust Meetup
- 2025-08-13 | Reading, UK | Reading Rust Workshop
- 2025-08-16 | Basel, CH | Rust Basel
- 2025-08-19 | Aarhus, DK | Rust Aarhus
- 2025-08-19 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2025-07-23 | Austin, TX, US | Rust ATX
- 2025-07-24 | Mountain View, CA, US | Hacker Dojo
- 2025-07-24 | México City, MX | Rust MX
- 2025-07-27 | Boston, MA, US | Boston Rust Meetup
- 2025-07-31 | Atlanta, GA, US | Rust Atlanta
- 2025-08-02 | Boston, MA, US | Boston Rust Meetup
- 2025-08-05 | New York, NY, US | Rust NYC
- 2025-08-07 | Mountain View, CA, US | Hacker Dojo
- 2025-08-07 | Saint Louis, MO, US | STL Rust
- 2025-08-08 | Boston, MA, US | Boston Rust Meetup
- 2025-08-12 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-08-14 | Lehi, UT, US | Utah Rust
- 2025-08-20 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-09-02 - 2025-09-05 | Hybrid (Seattle, WA, US) | RustConf
Oceania
- 2025-07-28 | Perth, AU | Rust Perth Meetup Group
- 2025-08-11 | Christchurch, NZ | Christchurch Rust Meetup Group
South America
- 2025-08-07 | Montevideo, UY | Rust Meetup Uruguay
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
In a way, [the] borrow checker also makes interfaces simpler. The rules may be restrictive, but the same rules apply to everything everywhere. I can learn them once, and then know what to expect from every API using references. There are no exceptions in libraries that try to be clever. There are no exceptions for single-threaded programs. There are no exceptions for DLLs. There are no exceptions for programs built with -fpointers-go-sideways. It may be tricky like a game of chess, but I only need to consider the rules of the game, and not odd stuff like whether my opponent glued pieces to the chessboard.
– Kornel Lesiński on hacker news
Thanks to danjl1100 for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
Email list hosting is sponsored by The Rust Foundation