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
Newsletters
Project/Tooling Updates
- Bevy 0.16
- Yelken Alpha Release Announcement
- BugStalker v0.3.0 - Modern debugger for Linux x86-64. Written in Rust for Rust programs.
Observations/Thoughts
- Audit of the Rust p256 Crate
- We have polymorphism at home 🦀!
- Migrating away from Rust
- Syntactic musings on match expressions
Rust Walkthroughs
- Freeing Up Gigabytes: Reclaiming Disk Space from Rust Cargo Builds
- A Visual Journey Through Async Rust
- [Video] Shipping Rust to Python, Typescript, and Ruby
- [Video] From Rust to C and Back Again: an introduction to "foreign functions" (Long Version)
- [Video] Internals of SlateDB: An embedded key-value store built on object storage
- [Video] Generating 1 Million PDFs in 10 Minutes
- [Video] RefinedRust - High-Assurance Verification of Rust Programs
Miscellaneous
- The Company That Is All-In On Rust For Robotics
- How Rolldown Works: Module Loading, Dependency Graphs, and Optimization Explained
- [Video] Why Learning Rust Could Change Your Career
Crate of the Week
This week's crate is rust-sel4, a no_std crate to bind to the Se4L microkernel APIs.
Thanks to Robbie VanVossen 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.
Rust
- 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.
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 a SubdomainTrieMatcher
- 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
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
389 pull requests were merged in the last week
Compiler
rc""
more clear error message- allow deref patterns to move out of boxes
- async drop codegen
- avoid re-interning in
LateContext::get_def_path
- implement a lint for implicit autoref of raw pointer dereference - take 2
- improve error message for
||
(or) in let chains - stabilize let chains in the 2024 edition
- deny
unsafe_op_in_unsafe_fn
by default
Library
- add
Arc::is_unique
- stabilise
std::ffi::c_str
- stabilize
proc_macro::Span::{start,end,line,column}
- stabilize
slice_as_chunks
library feature - transmutability: support char, NonZeroXxx
Cargo
- implement RFC3695: Allow boolean literals as cfg predicates
- stabilize automatic garbage collection
feat(add/install)
: check if given crate argument would be valid with inserted @ symbol
Rustdoc
- correctly display stdout and stderr in case a doctest is failing
- stabilize flags for doctest cross compilation
Clippy
manual_div_ceil
: fix suggestions when macro is involved- consider side effects when rewriting iterator behaviors
- fix
zombie_processes
false positive inside closures - fix:
equatable_if_let
suggests wrongly when involving reference - fix:
unnecessary_cast
suggests extra brackets when in macro - fix:
unused_unit
suggests wrongly on unit never type fallback - restrict the cases where
ptr_eq
triggers
Rust-Analyzer
- add expression fill mode variant for filling with underscore expressions
- always error when failed to parse DiscoverProjectMessage
- arena allocate
LifetimeRef
s - base-db: add more details to panic
- add two new diagnostics: one for mismatch in generic arguments count, and another for mismatch in their kind
- adds an assist to remove underscores from used variables
- better support
offset_of!()
- properly handle lifetimes when checking generic arguments len
- fix ide-assists
raw_string
suffix fail - escape raw names in labels properly
- fix incorrect diagnostic for lifetime parameter count mismatch
- fix type argument mismatch incorrectly triggering on inferred trait args
- panics in inlay hints that produce empty text edits for closure return types
Rust Compiler Performance Triage
Strange week with lots of noise peeking through the performance runs. The only really significant change was a performance improvement that comes from allowing out of order encoding of the dep graph.
Triage done by @rylev. Revision range: 8f2819b0..25cdf1f6
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.5% | [0.1%, 3.0%] | 77 |
Regressions ❌ (secondary) |
0.6% | [0.1%, 2.4%] | 77 |
Improvements ✅ (primary) |
-0.7% | [-1.3%, -0.2%] | 106 |
Improvements ✅ (secondary) |
-0.7% | [-1.2%, -0.2%] | 29 |
All ❌✅ (primary) | -0.2% | [-1.3%, 3.0%] | 183 |
4 Regressions, 2 Improvements, 4 Mixed; 2 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:
- 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
- Finalize repeat expr inference behaviour with inferred repeat counts
- Partially stabilize LoongArch target features
- Unify sidebar buttons to use the same image
- de-stabilize bench attribute
- Remove some unsized tuple impls now that we don't support unsizing tuples anymore
Other Areas
Language Reference
No Items entered Final Comment Period this week for Cargo, Rust RFCs, 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-04-30 - 2025-05-28 🦀
Virtual
- 2025-05-01 | Virtual (Girona, ES) | Rust Girona
- 2025-05-03 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-05-04 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-05-05 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 2025-05-07 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-05-07 | Virtual (Rotterdam, NL) | Bevy Game Development
- 2025-05-08 | Virtual (Girona, ES) | Rust Girona
- 2025-05-08 | Virtual (Berlin, DE) | Rust Berlin
- 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 | 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-20 | Virtual (London, GB) | Women in Rust
- 2025-05-20 | Virtual (Washington, DC, US) | Rust DC
- 2025-05-21 | Virtual (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
Asia
- 2025-05-24 | Bangalore/Bengaluru, IN | Rust Bangalore
Europe
- 2025-04-30 | Frankfurt, DE | Rust Rhein-Main
- 2025-05-01 | Nürnberg, DE | Rust Nuremberg
- 2025-05-04 | Istanbul, TR | Türkiye Rust Community
- 2025-05-06 | Cambridge, GB | Cambridge Rust Meetup
- 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 | 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-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-20 | Aarhus, DK | Rust Aarhus
- 2025-05-20 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
- 2025-05-22 | Bern, CH | Rust Bern
- 2025-05-22 | Paris, FR | Rust Paris
- 2025-05-27 | Basel, CH | Rust Basel
North America
- 2025-05-01 | Saint Louis, MO, US | STL Rust
- 2025-05-03 | Boston, MA, US | Boston Rust Meetup
- 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-15 | Nashville, TN, US | Music City Rust Developers
- 2025-05-15 | Redmond, WA, US | Seattle Rust User Group
- 2025-05-20 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-05-28 | Austin, TX, US | Rust ATX
South America
- 2025-05-28 | Montevideo, DE, UY | Rust Meetup Uruguay
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
With Bevy clearly being an extended test suite for Rust's trait solver, how did you get the idea to also turn it into a game engine?
Every sufficiently advanced test is indistinguishable from a game engine 🙂
– /u/0x564A00 and /u/_cart on /r/rust
Thanks to Ludwig Stecher and Josh Triplett 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