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
- The Embedded Rustacean Issue #54
- Rust Trends Issue #70: Foundation Moves and Performance Breakthroughs
Project/Tooling Updates
- Cot v0.4: Particularly Lazy
- Announcing Diesel 2.3
- A Sneak Peek at SeaORM 2.0
- Announcing Pingoo: The fast and secure Load Balancer / API Gateway with built-in service discovery and WAF
- Rerun 0.25.0 - Syntax highlighting, table filtering, transparent objects
- Introducing Obelisk 0.24.1
- Introducing CurveForge
- Swiftide 0.31
- hotpath 0.2.5 - a simple performance and memory profiler
Observations/Thoughts
- The pirate-based logic of Rust shared references
- Embedded async debugging and inspect-embassy
- Be Simple
- Why We Built Our Own SQL Parser From Scratch: A Rust Implementation Story
- Comparing transitive dependency version resolution in Rust and Java
- Trade-offs in designing DSLs
- Rust Algorithm Bites – Validating a Binary Search Tree
- Rust on Android - Lessons from the Edge
Rust Walkthroughs
- Axum Backend Series: Docker, Database and Connection Pooling
- The Hidden Rules Behind Rust Functions & Closures
- Rust unit testing: asynchronous code
- Ray Tracing in One Weekend - In Rust
- New Schematic - How to save $327.6 million using Rust
- [series] Real Time Clock - Rust Embedded Drivers Book
Miscellaneous
- [audio] Netstack.FM — A Podcast About Networking and Rust
- [video] Jan David Nose Interview, Rust Infrastructure Team (Rust Project Content @ RustConf 2025)
- August 2025 Rust Jobs Report
- The Symbiosis Of Rust And Arm: A Conversation With David Wood
Crate of the Week
This week's crate is asciinema, a well-known command-line tool for recording, replaying and streaming terminal sessions recently rewritten in Rust.
Despite a lack of suggestions, llogiq is plenty happy 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.
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.
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 X (formerly Twitter) or Mastodon!
Updates from the Rust Project
379 pull requests were merged in the last week
Compiler
- implement
#[rustc_align_static(N)]
onstatic
s - move more early buffered lints to dyn lint diagnostics
- make
AssocItem
aware of its impl kind - match clang's
va_arg
assembly on arm targets - reject invalid literal suffixes in tuple indexing, tuple
struct
indexing, andstruct
field name position - sort array trait implementation suggestions correctly
- strip frontmatter in fewer places
- miri: fix release/scquire synchonization for loads from the store buffer
- miri: make a basic hello world work on wasip2
Library
- constify Eq, Ord, PartialOrd
- implement
Sum
andProduct
forf16
andf128
- inclusive
Range
s: changeend
tolast
- make
Barrier
RefUnwindSafe
again - stabilize
BTree{Map,Set}::extract_if
- support integer literals in
${concat()}
Cargo
- cli: Allow completions for third-party subcommand names
- completer: Added completion for
--features
flag - complete: Show local crates/features over other members
- frontmatter: Try alternative len code fences
- manifest: Show error source to users
- publish: Switch the 'ctrl-c on wait' line to a help message
Rustdoc
Clippy
elidable_lifetime_names
: avoid overlapping spans in suggestionslen_zero
: don't eagerly callGenericArgs::type_at
multiple_unsafe_ops_per_block
: ignore unsafe ops from.await
desugaringneedless_closure
: don't lint onAsyncFn*
sneedless_return
: fix false positive withcfg
d code after returnref_option
: don't lint in external and proc-macrossemicolon_inside_block
: don't lint if block is in parensuse_self
: don't early-return if the outer type has no lifetimes- add suggestion to
cast_sign_loss
andcast_possible_wrap
using thecast_{un,}signed()
methods - fix
as_underscore
to only suggest when it's suggestable - fix
invalid_upcast_comparisons
wrongly unmangled macros - fix
useless_attribute
false positive ondeprecated_in_future
- recognize canonical
?
pattern withResult
Rust-Analyzer
- add more workaround hacks for incorrect startup diagnostics
- fix
LifetimeParam::lifetime_bounds
invalid implement - fix extra semicolon before else in let-stmt
- fix indent for
unresolved_field
fixes - always coerce in a cast, even when there are unknown types
- don't mark unknown type as implementing every notable trait
- don't output an empty generic parameters list in
generate_function
- don't trigger two flychecks when saving files that are part of targets
- fix expand macro recursively not working correctly for nested macro calls
- fix normalization in the new solver
- infinite loop while elaborting predicates
- make
#[target_feature]
always safe on WASM - more precise clause filtering for
explicit_*_predicates_of
- only compute unstable paths on nightly toolchains for IDE features
- resolve paths to snapshot test libraries absolutely
- migrate
InferenceTable
into next-solver
Rust Compiler Performance Triage
Difficult week to interpret, because a positive change in #145910 performs a bit worse in our benchmarks than it would in the real world. Overall result is probably still slightly negative, because there's more work from added features. On the other hand, we also have a nice improvement in reducing the number of query dependencies in compiler's incremental system in #145186.
Triage done by @panstromek. Revision range: f13ef0d7..52618eb3
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.5% | [0.2%, 2.7%] | 72 |
Regressions ❌ (secondary) |
0.7% | [0.0%, 3.5%] | 96 |
Improvements ✅ (primary) |
-0.5% | [-0.9%, -0.1%] | 10 |
Improvements ✅ (secondary) |
-0.8% | [-2.9%, -0.1%] | 41 |
All ❌✅ (primary) | 0.4% | [-0.9%, 2.7%] | 82 |
1 Regression, 1 Improvement, 6 Mixed; 3 of them in rollups 36 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
- Allow &raw
[mut | const]
for union field in safe code - Deny-by-default never type lints
- Opportunistically split
!=
to successfully parse never type - Allow specifying multiple bounds for same associated item, except in trait objects
- rustdoc: hide
#[repr]
if it isn't part of the public ABI
No Items entered Final Comment Period this week for Rust RFCs, Cargo, 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:
#[cfg(since(rust, "1.95"))]
for Rust-version conditional compilation - Mitigation enforcement
- RFC for
#[stable(since)]
Upcoming Events
Rusty Events between 2025-09-17 - 2025-10-15 🦀
Virtual
- 2025-09-17 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2025-09-18 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2025-09-23 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-09-25 | Virtual (Berlin, DE) | Rust Berlin
- 2025-09-28 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-10-01 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-10-04 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-10-05 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-10-07 | Virtual (Beijing, CN) | WebAssembly and Rust Meetup (Wasm Empowering AI)
- 2025-10-09 | Virtual (Berlin, DE) | Rust Berlin
- 2025-10-09 - 2025-10-10 | Hybrid (Paris, FR) | EuroRust
- 2025-10-12 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-10-14 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-10-15 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Asia
- 2025-09-17 | Tel Aviv-yafo, IL | Rust 🦀 TLV
- 2025-10-02 | Seoul, KR | Seoul Rust (Programming Language) Meetup
- 2025-10-04 | Bangalore, IN | Rust Bangalore
- 2025-10-08 | Kuala Lumpur, MY | Rust Malaysia
- 2025-10-09 | Tokyo, JP | Tokyo Rust Meetup
Europe
- 2025-09-17 | Girona, ES | Rust Girona | Silicon Girona
- 2025-09-18 | Aarhus, DK | Rust Aarhus
- 2025-09-23 | Paris, FR | Rust Paris
- 2025-09-24 | Göteborg, SE | Rust Göteborg
- 2025-09-24 | München, DE | Rust Munich
- 2025-09-25 | Augsburg, DE | Rust Augsburg
- 2025-09-25 | London, UK | Women in Rust
- 2025-09-27 | Stockholm, SE | Stockholm Rust
- 2025-09-30 | London, UK | Rust London User Group
- 2025-10-01 | Olomouc, CZ | Rust Moravia
- 2025-10-02 | Oslo, NO | Rust Oslo
- 2025-10-08 | Paris, FR | Rust Paris
- 2025-10-08 | Girona, ES | Rust Girona | Silicon Girona
- 2025-10-08 | Reading, UK | Reading Rust Workshop
- 2025-10-09 - 2025-10-10 | Hybrid (Paris, FR) | EuroRust
- 2025-10-14 | Basel, CH | Rust Basel
North America
- 2025-09-18 | Seattle, WA, US | Seattle Rust User Group
- 2025-09-20 | Boston, MA, US | Boston Rust Meetup
- 2025-09-21 | Detroit, MI, US | Detroit Rust
- 2025-09-24 | Austin, TX, US | Rust ATX
- 2025-09-24 | Charlottesville, VA, US | Charlottesville Rust Meetup
- 2025-09-24 | Chicago, IL, US | Chicago Rust Meetup
- 2025-09-24 | New York, NY, US | Rust NYC
- 2025-09-25 | Atlanta, GA, US | Rust Atlanta
- 2025-09-25 | Nashville, TN, US | Music City Rust Developers
- 2025-09-27 | Boston, MA, US | Boston Rust Meetup
- 2025-09-30 | Boston, MA, US | Boston Rust Meetup
- 2025-10-02 | Saint Louis, MO, US | STL Rust
- 2025-10-04 | Boston, MA, US | Boston Rust Meetup
Oceania:
- 2025-10-01 | Perth, WA, AU | Rust Perth Meetup 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.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
Real Question: is an array a struct/tuple, or is it an enum?
Thanks to Theemathas 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