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
Project/Tooling Updates
- TangleGuard: Software Architecture Monitoring exclusively for Rust
- redb v3.0.0 - pure Rust embedded key-value store
- wrkflw v0.7.0 - run and validate github actions locally
- serde-ply - Modern serde (de)serializer for Ply files)
- Bevy's Fifth Birthday
- warp v0.4
Observations/Thoughts
- Building an asynchronous FUSE Filesystem in Rust
- Nine Rules for Generalizing Your Rust Library: Lessons from Extending RangeSetBlaze to Maps (Part 1)
- Wait! Don't spawn that task! — Comparing patterns for mutable state in concurrent applications
- Send/Sync Secret That Separates Professional From Amateur
- hyper HTTP/2 (Didn't) MadeYouReset
- Are we Teaching Rust Effectively?
- [video] BaM #29 - Improving the Rust embedded firmware
- [video] David Sankel – Rust and C++ Interop
Rust Walkthroughs
- Lessons learned from implementing SIMD-accelerated algorithms (ChaCha20 / ChaCha12) in pure Rust
- Build with Naz: Capturing Real-Time Build Progress from Cargo Using PTY and OSC Sequences
- Converting FunctionTrace from C to Rust
- [video] Message framing in Rust and Iroh
Crate of the Week
This week's crate is MOMA, a framework for Moving Origin Modular Arithmetic, with applications in number theory, cryptography and bioinformatics.
Thanks to Neil Crago 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, 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.
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
464 pull requests were merged in the last week
Compiler
- account for bare tuples and
Pin
methods in field searching logic - detect
struct
construction with private field in field with default - emit
StorageLive
and scheduleStorageDead
forlet
-else
's bindings after matching - enforce tail call type is related to body return type in borrowck
- fortify generic param default checks
- implement
stability_implications
without a visitor - implement declarative (
macro_rules!
) attribute macros (RFC #3697) - improve suggestion for "missing function argument" on multiline call
- mark all deprecation lints in name resolution as deny-by-default and report-in-deps
- parser: recover from attributes applied to types and generic args
- recover
for PAT = EXPR {}
- preserve the
.debug_gdb_scripts
section - simplify dead code lint
- upgrade
semicolon_in_expressions_from_macros
from warn to deny #### Library - stabilize
duration_constructors_lite
feature - stabilize
panic_payload_as_str
feature - stabilize
strict_overflow_ops
- stabilize
unsigned_signed_diff
feature - stabilize const
TypeId::of
- stabilize loongarch32 inline asm
- constify remaining traits/impls for
const_ops
- implement
continue_ok
andbreak_ok
for ControlFlow - optimize
char::is_alphanumeric
- print thread ID in panic message
std::sys::io::io_slice
: Add UEFI types
Cargo
Rustdoc
Clippy
- fix
infinite_loop
positive - do not attempt to compute size of a type with escaping lifetimes
- do not lint for
wildcard_imports
in external macro - fix
&str
type check infrom_str_radix_10
- fix suggestion for
collapsible_if
andcollapsible_else_if
when the innerif
is enclosed in parentheses - move
cognitive_complexity
lint fromnursery
torestriction
- move
crosspointer_transmute
fromcomplexity
tosuspicious
- optimize
incompatible_msrv
lint - optimize
needless_bool
lint - reuse previous
Vec
allocation in loop
Rust-Analyzer
- add assignment type analysis for ide-completion
- add remove literal dbg stmt for
remove_dbg
- add write! and writeln! to minicore
- fix
extract_expressions_from_format_string
on write! - fix non-lsp compliant
Response
definition - fix panic while trying to clear old diagnostics while there's nothing
- parser: fix parsing of trait bound polarity and for-binders
Rust Compiler Performance Triage
This week saw almost no regressions, while we got some nice wins. One of them was #143684, which updated the LLVM version used by the Rust compiler to 21.
Triage done by @kobzol. Revision range: 07b7dc90..6355cd39
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.5% | [0.2%, 0.8%] | 3 |
Regressions ❌ (secondary) |
0.7% | [0.1%, 1.5%] | 8 |
Improvements ✅ (primary) |
-1.5% | [-22.8%, -0.2%] | 219 |
Improvements ✅ (secondary) |
-2.9% | [-18.8%, -0.1%] | 256 |
All ❌✅ (primary) | -1.5% | [-22.8%, 0.8%] | 222 |
2 Regressions, 2 Improvements, 9 Mixed; 5 of them in rollups 37 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
- Fix overly restrictive lifetime in
core::panic::Location::file
return type - Tracking Issue for
const_array_each_ref
- Require approval from t-infra instead of t-release on tier bumps
- const-eval: full support for pointer fragments
- Don't warn on never to any
as
casts as unreachable - Port #[link] to the new attribute parsing infrastructure
c_variadic
: Add future-incompatibility warning for...
arguments without a pattern outside of extern blocks- Rewrite the new attribute argument parser
- Tracking Issue for array::repeat
Rust RFCs
No Items entered Final Comment Period this week for Cargo, Language Team, Language Reference, Unsafe Code Guidelines. or
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
- [new] Pass pointers to
const
in assembly - [new] Include Clang in llvm-tools
- [new] repr(ordered_fields)
Upcoming Events
Rusty Events between 2025-08-13 - 2025-09-10 🦀
Virtual
- 2025-08-14 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2025-08-14 | Virtual (Berlin, DE) | Rust Berlin
- 2025-08-17 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-18 | Virtual (Kenya) | RustaceansKenya
- 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-08-21 | Hybrid (Mexico City, MX) | Rust MX
- 2025-08-21 | Virtual (Buenos Aires, AR) | Rust en Español
- 2025-08-21 | Virtual (London, UK) | Conf42: Online Tech Events
- 2025-08-21 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2025-08-24 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-26 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-28 | Virtual (Berlin, DE) | Rust Berlin
- 2025-08-31 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-09-02 | Hybrid (Seattle, WA, US) | RustConf
- 2025-09-02 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
- 2025-09-03 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-09-06 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-09-07 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-09-09 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-09-09 | Virtual (London, UK) | Women in Rust
Asia
- 2025-08-20 | Seoul, KR | Seoul Rust
- 2025-08-23 | Bangalore, IN | Rust Bangalore
Europe
- 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
- 2025-08-21 | Oslo, NO | Rust Oslo
- 2025-08-28 | Manchester, UK | Rust Manchester
- 2025-08-30 | Stockholm, SE | Stockholm Rust
- 2025-09-03 | Frankfurt, DE | Rust Rhein-Main
- 2025-09-10 | Reading, UK | Reading Rust Workshop
North America
- 2025-08-14 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2025-08-14 | Lehi, UT, US | Utah Rust
- 2025-08-14 | Portland, OR, US | PDXRust
- 2025-08-18 | Denver, CO, US | FOSS Rust Colorado
- 2025-08-20 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-08-21 | Hybrid (Mexico City, MX) | Rust MX
- 2025-08-21 | Mountain View, CA, US | Hacker Dojo
- 2025-08-21 | Nashville, TN, US | Music City Rust Developers
- 2025-08-23 | Boston, MA, US | Boston Rust Meetup
- 2025-08-27 | Austin, TX, US | Rust ATX
- 2025-08-28 | Atlanta, GA, US | Rust Atlanta
- 2025-09-02 - 2025-09-05 | Hybrid (Seattle, WA, US) | RustConf
- 2025-09-03 | Phoenix, AZ, US | Desert Rust
- 2025-09-04 | Phoenix, AZ, US | Desert Rust
- 2025-09-04 | Saint Louis, MO, US | STL Rust
- 2025-09-06 | Boston, MA, US | Boston Rust Meetup
Oceania
- 2025-08-26 | Barton, AU | Canberra Rust User Group
- 2025-08-27 - 2025-08-30 | Wellington, NZ | Rust Forge
South America
- 2025-08-21 | 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.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
- solid performance and tools to optimize it further: because the easy thing is generally Fast Enough, it's quick to develop features even in a perf-sensitive project
Despite a lack of suggestions, llogiq is feeling pretty good about his choice.
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