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
Project/Tooling Updates
Observations/Thoughts
- Emulating aarch64 in software using JIT compilation and Rust
- the core of rust
- Make the easy change hard
- Trying to get error backtraces in rust libraries right
- The unexpected productivity boost of Rust
- [audio] Netstack.FM — Episode 2: Hyper with Sean McArthur
Rust Walkthroughs
- Rust ints to Rust enums with less instructions
- GPUI Interactivity - Building a Counter App
- Rust for JavaScript Engineers - Building Connect-4
- Building a Plugin System for Rust: Native Libraries vs Scripting Language vs WASM vs Rules Engine
- Making a small Clippy lint
- Pest gotchas
- Shortcomings of Macros, And How To Overcome Them
- [video] Minimal Embedded FAT32 Driver - in Rust!
Miscellaneous
Crate of the Week
This week's crate is web-route, a library to ergonomically define and manage web server routes in Rust.
Thanks to sidrubs 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.
- greptimedb - Add date and timestamp format to COPY TO (CSV, JSON)
- greptimedb - Add compression options to COPY TO
- greptimedb - Currently KILL cannot terminate queries like INSERT INTO SELECT
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
553 pull requests were merged in the last week
Compiler
- demote
x86_64-apple-darwin
to Tier 2 with host tools rustc_expand
: ensure stack inInvocationCollector::visit_expr
- account for impossible bounds making seemingly unsatisfyable dyn-to-dyn casts
- add lint against integer to pointer transmutes
- fix ICE when validating transmuting ZST to inhabited
enum
- refactor attribute parsing to improve ergonomics and some diagnostics
- simplify span caches
- slightly optimize reading of source files
- miri: account for time spent tracing, use RDTSC for faster time
- miri: support weak definitions
Library
UnsafePinned::raw_get
: sync signature with getbufreader::Buffer::backshift
: don't move the uninit bytes- experiment: reborrow trait
- fix parameter order for
_by()
variants ofmin
/max
/minmax
instd::cmp
- fmt of non-decimal radix untangled
- implementation:
#[feature(nonpoison_rwlock)]
- stabilize
const_array_each_ref
- stabilize
const_pathbuf_osstring_new
feature - hashbrown: un-bloat
get_inner
functions to restore lookup performance
Cargo
Rustdoc
- add support for macro expansion in rustdoc source code pages
- make attributes render consistently
- render attributes in Field and Variants sections
Clippy
- clippy:
bool_comparison
: fix incorrect suggestion with>
/<
and macros - clippy:
bool_comparison
: no longer lint on!x != y
- clippy:
cast_slice_from_raw_parts
: check for implicit cast to raw slice pointer - clippy:
ptr_as_ptr
: fix incorrect suggestion withpointer::cast
and macros - clippy:
too_many_lines
: only highlight the function signature - clippy:
unnecessary_mut_passed
: add structured suggestion - clippy:
unused_unit
: don't lint on closure return types - clippy: better check for
assign_op_pattern
inconst
context - clippy: check f16 and f128 in
float_equality_without_abs
- clippy: detect infinite loop in
async fn
not returning!
- clippy: do not replace
match
byif
if any arm contains a binding - clippy: fix
unnecessary_safety_comment
not linting for the first line - clippy: fix
async_yields_async
wrongly unmangled macros - clippy: fix
derivable_impls
suggests wrongly onderive_const
- clippy: fix
manual_is_ascii_check
: also add explicit type when lintingmatches!
- clippy: fix
or_then_unwrap
: suggestion preserves macro calls - clippy: fix
semicolon_inside_block
false positive when attribute over expr is not enabled - clippy: fix
unnested_or_patterns
false positive on structs with only shorthand field pats
Rust-Analyzer
- rust-analyzer:
replace_arith_op
not applicable on selected - rust-analyzer: add
ReturnExpr
completion suggest - rust-analyzer: add let in let-chain completion support
- rust-analyzer: add an option to hide reborrows in adjustment inlay hints
- rust-analyzer: fix
else
completion inlet _ = if x {} $0
- rust-analyzer: fix panic in
syntax_highlighting
- rust-analyzer: fix rust-analyzer-contributors reference
- rust-analyzer: fix indentation in
move_guard_to_arm_body
- rust-analyzer: fix opaque generics
- rust-analyzer: improve semicolon handling in
toggle_macro_delimiter
- rust-analyzer: infinite recursion while lowering assoc type bounds from supertraits
- rust-analyzer: make import sorting order follow 2024 edition style
- rust-analyzer: masquerade as nightly cargo when invoking flycheck with
-Zscript
- rust-analyzer: normalize all types when finishing inference
- rust-analyzer: remove unnecessary
salsa::attach()
calls
Rust Compiler Performance Triage
Lot of regressions this week, mostly in rustdoc benchmarks from newly added features. The rest of the suite saw mostly small regressions in small benchmarks and also some improvements, notably from token tree parsing optimization in macro code, span optimization and ongoing work on new solver, which is not fully enabled, yet.
Triage done by @panstromek. Revision range: 239e8b1b..ee361e8f
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
3.7% | [0.3%, 34.5%] | 42 |
Regressions ❌ (secondary) |
2.3% | [0.0%, 53.3%] | 79 |
Improvements ✅ (primary) |
-0.5% | [-0.7%, -0.3%] | 9 |
Improvements ✅ (secondary) |
-0.9% | [-2.8%, -0.0%] | 30 |
All ❌✅ (primary) | 3.0% | [-0.7%, 34.5%] | 51 |
5 Regressions, 1 Improvement, 7 Mixed; 6 of them in rollups 38 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
- Tracking Issue for NUL-terminated file names with
#[track_caller]
- style-guide: Document absence of trailing whitespace
- Partial-stabilize the basics from
bigint_helper_methods
No Items entered Final Comment Period this week for Rust RFCs, Cargo, 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
- [new] Supertrait Auto-impl
- [new] RFC: Autogenerated Attribute
Upcoming Events
Rusty Events between 2025-08-27 - 2025-09-24 🦀
Virtual
- 2025-08-28 | Virtual (Berlin, DE) | Rust Berlin
- 2025-08-28 | Virtual (Los Angeles, CA, US) | Rust Los Angeles
- 2025-08-31 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-09-02 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
- 2025-09-02 - 2025-09-05 | 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
- 2025-09-11 | Virtual (Berlin, DE) | Rust Berlin
- 2025-09-11 | Virtual (San Diego, CA, US) | San Diego Rust
- 2025-09-14 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-09-15 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2025-09-16 | Virtual (Washington, DC, US) | Rust DC
- 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
Africa
- 2025-09-09 | Johannesburg, ZA | Johannesburg Rust Meetup
Asia
- 2025-09-13 | Hangzhou, CN | WebAssembly and Rust Meetup (Wasm Empowering AI)
- 2025-09-13 - 2025-09-14 | Hangzhou, CN | GOSIM
- 2025-09-17 | Tel Aviv-yafo, IL | Rust 🦀 TLV
Europe
- 2025-08-27 | London, UK | Rust London User Group
- 2025-08-28 | Copenhagen, DK | Copenhagen Rust Community
- 2025-08-28 | Edinburgh, UK | Rust and Friends
- 2025-08-28 | Manchester, UK | Rust Manchester
- 2025-08-29 | Edinburgh, UK | Rust and Friends
- 2025-08-30 | Stockholm, SE | Stockholm Rust
- 2025-09-03 | Edinburgh, UK | Rust and Friends
- 2025-09-03 | Frankfurt, DE | Rust Rhein-Main
- 2025-09-04 | Gdansk, PL | Rust Gdansk
- 2025-09-10 | Reading, UK | Reading Rust Workshop
- 2025-09-11 | Bern, CH | Rust Bern
- 2025-09-16 - 2025-09-18 | Berlin, DE | [Oxidize Conference] (https://oxidizeconf.com/)
- 2025-09-16 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2025-09-17 | Girona, ES | Rust Girona | Silicon Girona
- 2025-09-18 | Aarhus, DK | Rust Aarhus
- 2025-09-24 | München, DE | Rust Munich
North America
- 2025-08-27 | Austin, TX, US | Rust ATX
- 2025-08-28 | Atlanta, GA, US | Rust Atlanta
- 2025-08-28 | Chicago, IL, US | Chicago Rust Meetup
- 2025-08-28 | Los Angeles, CA, US | Rust Los Angeles
- 2025-09-02 - 2025-09-05 | Hybrid (Seattle, WA, US) | RustConf
- 2025-09-04 | Mountain View, CA, US | Hacker Dojo
- 2025-09-03 | Phoenix, AZ, US | Desert Rust
- 2025-09-04 | Mountain View, CA, US | Hacker Dojo
- 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
- 2025-09-10 | Phoenix, AZ, US | Desert Rust
- 2025-09-11 | Lehi, UT, US | Utah Rust
- 2025-09-11 | Seattle, WA, US | Seattle Rust User Group
- 2025-09-14 | Boston, MA, US | Boston Rust Meetup
- 2025-09-16 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-09-17 | Charlottesville, VA, US | Charlottesville Rust Meetup
- 2025-09-18 | Nashville, TN, US | Music City Rust Developers
- 2025-09-18 | Seattle, WA, US | Seattle Rust User Group
- 2025-09-24 | Austin, TX, US | Rust ATX
Oceania
- 2025-08-27 - 2025-08-30 | Wellington, NZ | Rust Forge
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
I
clone()
everything now. The Borrow Checker permits this small rebellion, this inefficiency. It knows I suffer more knowing my code is not idiomatic. Every.clone()
is a confession of my failure. EveryArc<Mutex>
a monument to my inadequacy.
– /u/TheEldenLorrdd on /r/rust
Thanks to Colin Terry 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