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
Foundation
Newsletters
Project/Tooling Updates
- Avian Physics 0.3
- Two months in Servo: CSS nesting, Shadow DOM, Clipboard API, and more
- Cot v0.3: Even Lazier
- Streaming data analytics, Fluvio 0.17.3 release
- CGP v0.4 is Here: Unlocking Easier Debugging, Extensible Presets, and More
- Rama v0.2
Observations/Thoughts
- Bad Type Patterns - The Duplicate duck
- Rust nightly features you should watch out for
- Lock-Free Rust: How to Build a Rollercoaster While It’s on Fire
- Simple & type-safe localization in Rust
- From Rust to AVR assembly: Dissecting a minimal blinky program
- Tarpaulins Week Of Speed
- Rustls Server-Side Performance
- Is Rust the Future of Programming?
Rust Walkthroughs
- Functional asynchronous Rust
- The Power of Compile-Time ECS Architecture in Rust
- [video] Build with Naz : Spinner animation, lock contention, Ctrl+C handling for TUI and CLI
Miscellaneous
Crate of the Week
This week's crate is brush, a bash compatible shell implemented completely in Rust.
Thanks to Josh Triplett for the 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.
- rama - add ffi/rama-rhai: support ability to use services and layers written in rhai
- rama - support akamai h2 passive fingerprint and expose in echo + fp services
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
397 pull requests were merged in the last week
Compiler
- async drop fix for
async_drop_in_place<T>
layout for unspecified T - better error message for late/early lifetime param mismatch
- perf: make the assertion in
Ident::new
debug-only - perf: merge typeck loop with static/const item eval loop
Library
Cargo
- network: use Retry-After header for HTTP 429 responses
- rustc: Don't panic on unknown bins
- add glob pattern support for
known_hosts
- add support for
-Zembed-metadata
- fix tracking issue template link
- make cargo script ignore workspaces
Rustdoc
- rustdoc-json: remove newlines from attributes
- ensure that temporary doctest folder is correctly removed even if doctests failed
Clippy
- clippy:
item_name_repetitions
: excludeenum
variants with identical path components - clippy:
return_and_then
: only lint returning expressions - clippy:
unwrap_used
,expect_used
: accept macro result as receiver - clippy: add
allow_unused
config tomissing_docs_in_private_items
- clippy: add new
confusing_method_to_numeric_cast
lint - clippy: add new lint:
cloned_ref_to_slice_refs
- clippy: fix ICE in
missing_const_for_fn
- clippy: fix
integer_division
false negative for NonZero denominators - clippy: fix
manual_let_else
false negative when diverges on simpleenum
variant - clippy: fix
unnecessary_unwrap
emitted twice in closure - clippy: fix diagnostic paths printed by dogfood test
- clippy: fix false negative for
unnecessary_unwrap
- clippy: make
let_with_type_underscore
help message into a suggestion - clippy: resolve through local re-exports in
lookup_path
Rust-Analyzer
- fix postfix snippets duplicating derefs
- resolve doc path from parent module if outer comments exist on module
- still complete parentheses & method call arguments if there are existing parentheses, but they are after a newline
Rust Compiler Performance Triage
Lot of changes this week. Overall result is positive, with one large win in type check.
Triage done by @panstromek. Revision range: 62c5f58f..718ddf66
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.5% | [0.2%, 1.4%] | 113 |
Regressions ❌ (secondary) |
0.5% | [0.1%, 1.5%] | 54 |
Improvements ✅ (primary) |
-2.5% | [-22.5%, -0.3%] | 45 |
Improvements ✅ (secondary) |
-0.9% | [-2.3%, -0.2%] | 10 |
All ❌✅ (primary) | -0.3% | [-22.5%, 1.4%] | 158 |
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
- Tracking Issue for
non_null_from_ref
- Add std::io::Seek instance for
std::io::Take
- aarch64-softfloat: forbid enabling the neon target feature
- Stabilize the avx512 target features
- make std::intrinsics functions actually be intrinsics
- Error on recursive opaque ty in HIR typeck
- Remove
i128
andu128
fromimproper_ctypes_definitions
- Guarantee behavior of transmuting
Option::<T>::None
subject to NPO - Temporary lifetime extension through tuple struct and tuple variant constructors
- Stabilize
tcp_quickack
- Change the desugaring of
assert!
for better error output - Make well-formedness predicates no longer coinductive
No Items entered Final Comment Period this week for Cargo, Rust RFCs, 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
Upcoming Events
Rusty Events between 2025-05-14 - 2025-06-11 🦀
Virtual
- 2025-05-15 | Hybrid (Redmond, WA, US) | Seattle Rust User Group
- 2025-05-15 | Virtual (Girona, ES) | Rust Girona
- 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 (Zürich, CH) | Rust Zürisee
- 2025-05-18 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-05-19 | Virtual (Tel Aviv-yafo, IL) | Rust 🦀 TLV
- 2025-05-20 | Hybrid (EU/UK) | Rust and C++ Dragons (former Cardiff)
- 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-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-05-29 | Virtual (Tel Aviv-yafo, IL) | Rust 🦀 TLV
- 2025-06-01 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-06-03 | Virtual (Tel Aviv-yafo, IL) | Rust 🦀 TLV
- 2025-06-04 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-06-05 | Virtual (Berlin, DE) | Rust Berlin
- 2025-06-07 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-06-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-06-10 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-06-10 | Virtual (London, UK) | Women in Rust
Asia
- 2025-05-17 | Delhi, IN | Rust Delhi
- 2025-05-24 | Bangalore/Bengaluru, IN | Rust Bangalore
- 2025-06-08 | Tel Aviv-yafo, IL | Rust 🦀 TLV
Europe
- 2025-05-13 - 2025-05-17 | Utrecht, NL | Rust NL
- 2025-05-14 | Reading, UK | Reading Rust Workshop
- 2025-05-15 | Berlin, DE | Rust Berlin
- 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 | Dortmund, DE | Rust Dortmund
- 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-27 | Vienna, AT | Rust Vienna
- 2025-05-29 | Oslo, NO | Rust Oslo
- 2025-05-31 | Stockholm, SE | Stockholm Rust
- 2025-06-04 | Ghent, BE | Systems Programming Ghent
- 2025-06-04 | München, DE | Rust Munich
- 2025-06-04 | Oxford, UK | Oxford Rust Meetup Group
- 2025-06-05 | München, DE | Rust Munich
- 2025-06-11 | Reading, UK | Reading Rust Workshop
North America
- 2025-05-15 | Hybrid (Redmond, WA, US) | Seattle Rust User Group
- 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-18 | Albuquerque, NM, US | Ideas and Coffee
- 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
- 2025-06-05 | Saint Louis, MO, US | STL Rust
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
If a
Pin
drops in a room, and nobody around understands it, does it make an unsound? #rustlang
Thanks to Josh Triplett for the self-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