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
- Announcing Malai - Share your dev server (and more) over P2P
 - Streaming data analytics, Fluvio 0.17.2 release
 - Leptos v0.8.0
 - This Month in Redox - April 2025
 
Observations/Thoughts
- Automatic interleaving of high-level concurrent operations
 - Flattening Rust's Learning Curve
 - The Evolution of Rust
 - std::mem is... interesting
 - [audio] Svix with Tom Hacohen
 
Rust Walkthroughs
- Authentication with Axum
 - Newtyped Indices are Proofs
 - What is my fuzzer doing?
 - A Rust API Inspired by Python, Powered by Serde
 - How to create small and secure Docker images for Rust (FROM scratch)
 - [video] Rust + SQLite: Complete Tutorial (Schema, CRUD, JSON & Async)
 
Research
- An Interactive Debugger for Rust Trait Errors
 - RustAssistant: Using LLMs to Fix Compilation Errors in Rust Code
 
Miscellaneous
- Memory-safe sudo to become the default in Ubuntu
 - How To Get A Rust Job Part I: Companies Already Using Rust
 - GOSIM Spotlight Finalists at RustWeek
 
Crate of the Week
This week's crate is structstruck, a proc-macro crate for enabling nested struct/enum definitions.
Thanks to Julius Michaelis 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 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.
- Hyperswitch - Move connector-specific utility functions to respective connector modules
 - Hyperswitch - Refactor ACI connector to reuse utilities from 
utils.rs - Hyperswitch - Analyze and remove unused functions in 
connector/utils.rs - rama - add ffi/rama-rhai: support ability to use services and layers written in rhai
 - rama - support (TLS) peetprint in rama-net fingerprinting
 - rama - support akamai h2 passive fingerprint and expose in echo + fp services
 - rama - add into_stream to BodyExtractExt trait
 
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
447 pull requests were merged in the last week
Compiler
- handle paren in macro expand for let-init-else expr
 - implement or-patterns for pattern types
 - initial support for dynamically linked crates
 - mir-opt: execute MatchBranchSimplification after GVN
 - refactor 
rustc_on_unimplemented'sfilter parser - perf: optimize the codegen for 
Span::from_expansion - perf: delay checking of 
#[rustc_no_implicit_autorefs]in autoref lint - perf: simplify 
LazyAttrTokenStream - perf: use a closure instead of three chained iterators
 - transmutability: merge contiguous runs with a common destination
 - transmutability: uninit transition matches unit byte only
 
Library
- avoid redundant WTF-8 checks in 
PathBuf - delegate to inner 
vec::IntoIterfromenv::ArgsOs - implement 
Iterator::lastforvec::IntoIter - stabilize 
ptr::swap_nonoverlappingin const - stabilize 
select_unpredictable - streamline the 
formatmacro 
Cargo
- cargo add: suggest similarly named features
 - in package-workspace, keep dev-dependencies if they have a version
 
Rustdoc
Rustfmt
Clippy
- don't warn about unloaded crates
 - fix 
collapsible_iffalse positive on block stmt before expr - fix 
manual_unwrap_or_defaultfalse positive on ref binding - fix: 
manual_slice_fillfalse positive onIndexMutoverload - fix: 
unused_asyncfalse positive on default impl - gate 
collapsible_if let_chainslints on edition 2024 and MSRV 
Rust-Analyzer
- add PGO support to install
 - better handle parallelism in cache priming
 - disable fixpoint for variance computation temporarily
 - add an assist to unwrap a type with a generic arg
 - correct assoc ty bound var starting index
 - correct span info for 
mir::Operand - don't panic on some weird code
 - fix 
move_boundsassists not working for lifetimes - fix incorrect handling of unresolved non-module imports in name resolution
 - fix proc-macro API creating malformed negative literals
 - implement mut to const ptr cast for method resolution
 - improve parser recovery a bit
 - negative nums in 
concat!expansion - remove unnecessary token length check for macros in renaming
 - improve the let code snippet
 - render more lifetimes
 - support environment variable 
CARGO_MANIFEST_PATH 
Rust Compiler Performance Triage
A relatively noisy week due to addition of new benchmarks as part of our 2025 benchmark update, and a number of large regressions in a rollup landing late in the week (and so not yet investigated).
Triage done by @simulacrum. Revision range: 25cdf1f6..62c5f58f
2 Regressions, 2 Improvements, 6 Mixed; 3 of them in rollups 31 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
- Temporary lifetime extension through tuple struct and tuple variant constructors
 - Stabilize the avx512 target features
 - Make 
missing_fragment_specifieran unconditional error - Error on recursive opaque ty in HIR typeck
 - Add 
std::io::Seek instanceforstd::io::Take - remove intrinsics::drop_in_place
 - Stabilize 
tcp_quickack - Change the desugaring of 
assert!for better error output - Tracking Issue for 
non_null_from_ref - Make well-formedness predicates no longer coinductive
 - Fix parameter order for 
_by()variants ofmin/max/minmaxinstd::cmp - Finalize repeat expr inference behaviour with inferred repeat counts
 - Implement (part of) ACP 429: add 
DerefMuttoLazy[Cell/Lock] 
Other Areas
Cargo
Rust RFCs
No Items entered Final Comment Period this week for Language Reference, Language Team 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: enable derive(From) for single-field structs
 #![register_{attribute,lint}_tool]- RFC: Add an attribute for raising the alignment of various items
 
Upcoming Events
Rusty Events between 2025-05-07 - 2025-06-04 🦀
Virtual
- 2025-05-07 | Virtual (Indianapolis, IN, US) | Indy Rust
 - 2025-05-07 | Virtual (Rotterdam, NL) | Bevy Game Development
 - 2025-05-08 | Virtual (Berlin, DE) | Rust Berlin
 - 2025-05-08 | Virtual (Girona, ES) | Rust Girona
 - 2025-05-08 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
 - 2025-05-08 | Virtual (Zürich, CH) | Rust Zürisee
 - 2025-05-10 | Virtual | Leptos Community
 - 2025-05-11 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-05-11 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-05-13 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-05-15 | Hybrid (Redmond, WA, US) | Seattle Rust User Group
 - 2025-05-15 | Virtual (Joint Meetup, Europe + Israel) | Rust Berlin, Rust Paris, London Rust Project Group, Rust Zürisee, Rust TLV, Rust Nürnberg, Rust Munich, Rust Aarhus, lunch.rs
 - 2025-05-15 | Virtual (Girona, ES) | Rust Girona
 - 2025-05-18 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-05-19 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
 - 2025-05-20 | Virtual (London, UK) | Women in Rust
 - 2025-05-20 | Virtual (Tel Aviv, IL) | Code Mavens 🦀 - 🐍 - 🐪
 - 2025-05-20 | Virtual (Washington, DC, US) | Rust DC
 - 2025-05-21 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
 - 2025-05-22 | Virtual (Berlin, DE) | Rust Berlin
 - 2025-05-22 | Virtual (Girona, ES) | Rust Girona
 - 2025-05-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-05-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-05-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-05-27 | Virtual (Tel Aviv, IL) | Code Mavens 🦀 - 🐍 - 🐪
 - 2025-05-29 | Virtual (Nürnberg, DE) | Rust Nuremberg
 - 2025-06-01 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
 - 2025-06-04 | Virtual (Indianapolis, IN, US) | Indy Rust
 
Asia
- 2025-05-17 | Delhi, IN | Rust Delhi
 - 2025-05-24 | Bangalore/Bengaluru, IN | Rust Bangalore
 
Europe
- 2025-05-07 | Girona, ES | Rust Girona
 - 2025-05-07 | Köln, DE | Rust Cologne
 - 2025-05-07 | Madrid, ES | MadRust
 - 2025-05-07 | Oxford, UK | Oxford Rust Meetup Group
 - 2025-05-08 | Gdansk, PL | Rust Gdansk
 - 2025-05-08 | London, UK | London Rust Project Group
 - 2025-05-12 | Amsterdam, NL | RustNL
 - 2025-05-12 | Amsterdam, NL | RustNL
 - 2025-05-12 | Amsterdam, NL | RustNL
 - 2025-05-12 | Amsterdam, NL | RustNL
 - 2025-05-13 | Amsterdam, NL | RustNL
 - 2025-05-13 - 2025-05-17 | Utrecht, NL | Rust NL
 - 2025-05-14 | Reading, UK | Reading Rust Workshop
 - 2025-05-15 | Oslo, NO | Rust Oslo
 - 2025-05-16 | Amsterdam, NL | RustNL
 - 2025-05-16 | Utrecht, NL | Rust NL Meetup Group
 - 2025-05-17 | Amsterdam, NL | RustNL
 - 2025-05-20 | Aarhus, DK | Rust Aarhus
 - 2025-05-20 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
 - 2025-05-22 | Augsburg, DE | Rust Augsburg
 - 2025-05-22 | Bern, CH | Rust Bern
 - 2025-05-22 | Paris, FR | Rust Paris
 - 2025-05-22 | Stockholm, SE | Stockholm Rust
 - 2025-05-27 | Basel, CH | Rust Basel
 - 2025-05-29 | Oslo, NO | Rust Oslo
 - 2025-06-04 | München, DE | Rust Munich
 - 2025-06-04 | Oxford, UK | Oxford Rust Meetup Group
 
North America
- 2025-05-07 | Chicago, IL, US | Chicago Rust Meetup
 - 2025-05-08 | México City, MX | Rust MX
 - 2025-05-08 | Portland, OR, US | PDXRust
 - 2025-05-11 | Boston, MA, US | Boston Rust Meetup
 - 2025-05-13 | New York, NY, US | Rust NYC
 - 2025-05-15 | Mountain View, CA, US | Hacker Dojo
 - 2025-05-15 | Nashville, TN, US | Music City Rust Developers
 - 2025-05-15 | Hybrid (Redmond, WA, US) | Seattle Rust User Group
 - 2025-05-20 | San Francisco, CA, US | San Francisco Rust Study Group
 - 2025-05-21 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
 - 2025-05-28 | Austin, TX, US | Rust ATX
 - 2025-05-29 | Atlanta, GA, US | Rust Atlanta
 
South America
- 2025-05-28 | Montevideo, DE, UY | Rust Meetup Uruguay
 - 2025-05-31 | São Paulo, BR | Rust São Paulo Meetup
 
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
Well, the answer is basically yes. Our firmware is all Rust. Every component of our autonomy stack is Rust. Our app is 50% in Rust. And, our visualization tools are in Rust. Our production tools are in rust. The production QC software, which we ship to China, is in rust. Our internal websites are in rust. It's rust all over. We’ve drank the Rust Kool-Aid. In fact, there is no Python installed on the robots. This is not to dis Python at all, but it’s just simply not there.
We use Python for neural network training. But Python is boxed to that. Everything else is Rust. And, the advantage of using Rust exponentially builds up.
Thanks to Brian Kung 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