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
Project/Tooling Updates
- Shadertoys ported to Rust GPU
- Meilisearch 1.14 - composite embedders, embedding cache, granular filterable attributes, and batch document retrieval by ID
- rust-query 0.4: structural types and other new features
Observations/Thoughts
- Rebuilding Prime Video UI with Rust and WebAssembly
- ALP Rust is faster than C++
- what if the poison were rust?
- A surprising enum size optimization in the Rust compiler
- Two Years of Rust
- An ECS lite architecture
- A 2025 Survey of Rust GUI Libraries
- BTrees, Inverted Indices, and a Model for Full Text Search
- Cutting Down Rust Compile Times From 30 to 2 Minutes With One Thousand Crates
- SIMD in zlib-rs (part 1): Autovectorization and target features
- Avoiding memory fragmentation in Rust with jemalloc
- [video] Bevy Basics: Who Observes the Observer
Rust Walkthroughs
- Rust Type System Deep Dive From GATs to Type Erasure
- Async from scratch 1: What's in a Future, anyway? | natkr's ramblings
- Async from scratch 2: Wake me maybe | natkr's ramblings
- Building a search engine from scratch, in Rust: part 4
- Pretty State Machine Patterns in Rust
- [video] Build with Naz : Declarative macros in Rust
Miscellaneous
Crate of the Week
This week's crate is wgpu, a cross-platform graphics and compute library based on WebGPU.
Despite a lack of suggestions, llogiq is pleased 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 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 serve command to rama-cli
- rama - add support for include_dir for to ServeDir and related
- rama - add curl module to rama-http-types
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
480 pull requests were merged in the last week
Compiler
- detect and provide suggestion for
&raw EXPR
- don't suggest the use of
impl Trait
in closure parameter - make the compiler suggest actual paths instead of visible paths if the visible paths are through any doc hidden path
- tell LLVM about impossible niche tags
- remove
Nonterminal
andTokenKind::Interpolated
- re-use
Sized
fast-path
Library
- add
core::intrinsics::simd::{simd_extract_dyn, simd_insert_dyn}
- initial
UnsafePinned
implementation (Part 1: Libs) - polymorphize
array::IntoIter
's iterator impl - speed up
String::push
andString::insert
- std: add
Output::exit_ok
Cargo
- added symlink resolution for
workspace-path-hash
- improved error message when build-dir template var is invalid
Rustdoc
Clippy
arbitrary_source_item_ordering
should ignore test modulesimplicit_return
: better handling of asynchronous code- accept
self.cmp(other).into()
as canonicalPartialOrd
impl - add
manual_abs_diff
lint - consecutive returns dont decrease cognitive Complexity level anymore
- consider nested lifetimes in
mut_from_ref
- correctly handle bracketed type in
default_constructed_unit_struct
- deprecate
match_on_vec_items
lint - do not propose to auto-derive
Clone
in presence of unsafe fields - fix:
iter_cloned_collect
false positive with customFrom
/IntoIterator
impl - fix:
map_entry
: don't emit lint before checks have been performed - fix:
redundant_clone
false positive in overlapping lifetime - various fixes for
manual_is_power_of_two
Rust-Analyzer
- ast: return correct types for
make::expr_*
methods - add children modules feature
- add normalizeDriveLetter
- distribute x64 and aarch64 Linux builds with PGO optimizations
- fix dyn compatibility code bypassing
callable_item_signature
query - fix a small bug with catastrophic effects
- fix an incorrect
ExpressionStore
that was passed - prevent panics when there is a cyclic dependency between closures
- shadow type by module
- ignore errors from rustfmt which may trigger error notification
- port closure inference from rustc
Rust Compiler Performance Triage
Relatively small changes this week, nothing terribly impactful (positive or negative).
Triage done by @simulacrum. Revision range: e643f59f..15f58c46
1 Regressions, 3 Improvements, 3 Mixed; 2 of them in rollups 35 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
- Split elided_lifetime_in_paths into tied and untied
- check types of const param defaults
- Stabilize flags for doctest cross compilation
- Do not remove trivial
SwitchInt
in analysis MIR - Implement a lint for implicit autoref of raw pointer dereference - take 2
- Implement
Default
for raw pointers - make abi_unsupported_vector_types a hard error
- Stabilize let chains in the 2024 edition
- Make closure capturing have consistent and correct behaviour around patterns
- Stabilize the
cell_update
feature
Other Areas
- *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
- No New or Updated RFCs were created this week.
Upcoming Events
Rusty Events between 2025-04-16 - 2025-05-14 🦀
Virtual
- 2025-04-16 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2025-04-17 | Virtual and In-Person (Redmond, WA, US) | Seattle Rust User Group
- 2025-04-22 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-04-23 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2025-04-24 | Virtual (Berlin, DE) | Rust Berlin
- 2025-04-24 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2025-05-03 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-05-05 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 2025-05-07 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-05-08 | Virtual (Berlin, DE) | Rust Berlin
- 2025-05-13 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
Asia
- 2025-04-22 | Tel Aviv-Yafo, IL | Rust 🦀 TLV
Europe
- 2025-04-19 | Istanbul, TR | Türkiye Rust Community
- 2025-04-23 | London, UK | London Rust Project Group
- 2025-04-24 | Aarhus, DK | Rust Aarhus
- 2025-04-24 | Edinburgh, UK | Rust and Friends
- 2025-04-24 | Manchester, UK | Rust Manchester
- 2025-04-25 | Edinburgh, UK | Rust and Friends
- 2025-04-26 | Stockholm, SE | Stockholm Rust
- 2025-04-29 | London, UK | Rust London User Group
- 2025-04-29 | Paris, FR | Rust Paris
- 2025-04-30 | Frankfurt, DE | Rust Rhein-Main
- 2025-05-01 | Nürnberg, DE | Rust Nuremberg
- 2025-05-06 - 2025-05-07 | Paris, FR | WebAssembly and Rust Meetup
- 2025-05-06 | Paris, FR | WebAssembly and Rust Meetup (Wasm Empowering AI)
- 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-13 | Amsterdam, NL | RustNL
- 2025-05-13 - 2025-05-17 | Utrecht, NL | Rust NL
- 2025-05-14 | Reading, UK | Reading Rust Workshop
North America
- 2025-04-17 | Mountain View, CA, US | Hacker Dojo
- 2025-04-17 | Nashville, TN, US | Music City Rust Developers
- 2025-04-17 | Redmond, WA, US | Seattle Rust User Group
- 2025-04-22 | Detroit, MI, US | Detroit Rust
- 2025-04-23 | Austin, TX, US | Rust ATX
- 2025-04-23 | Austin, TX, US | Rust ATX
- Rust Lunch - Fareground 2025-04-23 | Spokane, WA, US | Spokane Rust
- Community Show & Tell at Fuel Coworking
- 2025-04-24 | Atlanta, GA, US | Rust Atlanta
- 2025-04-25 | Boston, MA, US | Boston Rust Meetup
- 2025-05-01 | Saint Louis, MO, US | STL Rust
- 2025-05-03 | Boston, MA, US | Boston 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
Oceania
- 2025-04-22 | Barton, AC, AU | Canberra Rust User 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
IEEE 754 floating point, proudly providing counterexamples since 1985!
– Johannes Dahlström on rust-internals
Thanks to Ralf Jung 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