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 on X (formerly Twitter) 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
- rust-analyzer #277
- Git 2.49 Released With Faster Packing, Rust Foreign Language Interface
- Rust CUDA project update
- Big Rust Update Merged For GCC 15 - Lands The Polonius Borrow Checker
- Oxidizing Ubuntu: adopting Rust utilities by default
- Apache OpenDAL 2025 Roadmap: Perfecting Production Adoption
bevy_lint
v0.2.0: lint your Bevy projects- Why Yōzefu? A terminal user interface to search for data in a Kafka cluster
- Announcing AIScript and How I Built It
- Announcing mocktail: HTTP & gRPC server mocking for Rust
Observations/Thoughts
- How to speed up the Rust compiler in March 2025
- Carefully But Purposefully Oxidising Ubuntu
- Below: World Writable Directory in /var/log/below Allows Local Privilege Escalation
- Extending Future In Rust
- Writing Terrible Code
- alp-rs is faster than c++ reference
- [video] It’s Not As Simple As “Use A Memory Safe Language"
- [video] Ubuntu Will Replace GNU Core Utilities With Rust
- [video] What's up with Rust?
Rust Walkthroughs
- Create A Web + Desktop Application With Rust
- Transition Systems in Rust
- Nine Pico PIO Wats with Rust: Raspberry Pi programmable IO Pitfalls Illustrated with a Musical Example (Part 2)
- [series] Building a search engine from scratch, in Rust
- [video] Build with Naz : newtype design pattern, and impl Into T for ergonomic APIs
Miscellaneous
Crate of the Week
This week's crate is dom_smoothie, a crate for extracting readable content from web pages.
Despite a lack of suggestions this week, 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.
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.
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
468 pull requests were merged in the last week
Compiler
Miri
native_calls
: ensure we actually expose mutable provenance to the memory FFI can accessalloc_addresses
: use MemoryKind instead of tcx query to determine global allocations
Libraries
- add
From<{integer}>
forf16
/f128
impls - denote
ControlFlow
as#[must_use]
- optimize multi-char string patterns
- stabilize
std::io::ErrorKind::InvalidFilename
- stablize anonymous pipe
Cargo
- add custom completer for cargo
+<TAB>
to complete toolchain name - deduplicate crate types in cargo rustc command
Rustdoc
Rustfmt
Clippy
- new lint:
doc_comment_double_space_linebreaks
incompatible_msrv
: lint function calls with any argument countneedless_pass_by_value
: reference the innermostOption
contentquestion_mark
: avoid incorrect suggestion whenref
binding used- fix
from_over_into
lint suggesting invalid code - fix incorrect suggestions related to parentheses in
needless_return
- fix
unnecessary_safety_comment
false positive on desugared assign
Rust-Analyzer
- add icons to views
- analysis-stats: run Salsa's LRU at the end of analysis
- display varargs in completion detail
- do not error for actions with no data to resolve
- for loop to while let assist
- fix testing packages with multiple targets
- avoid recursively debug printing crates
- fix stale
Building CrateGraph
report - observe unsafeness when generating manual impls of former derives
- preparation to Return Type Notation (RTN)
- port rust-analyzer to new salsa
- salsify the crate graph
Rust Compiler Performance Triage
A relatively busy week with a large amount of regressions in rollups which made investigations more tricky. Luckily overall the week was an improvement due to some medium sized improvements through improving target feature computation and a type systems internals fix.
Triage done by @rylev. Revision range: 9fb94b32..493c38ba
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
1.7% | [0.2%, 3.0%] | 18 |
Regressions ❌ (secondary) |
0.8% | [0.2%, 2.7%] | 37 |
Improvements ✅ (primary) |
-1.0% | [-10.3%, -0.2%] | 157 |
Improvements ✅ (secondary) |
-1.7% | [-8.8%, -0.2%] | 158 |
All ❌✅ (primary) | -0.8% | [-10.3%, 3.0%] | 175 |
5 Regressions, 5 Improvements, 3 Mixed; 5 of them in rollups 44 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:
- RFC for doc_cfg, doc_cfg_auto, doc_cfg_hide and doc_cfg_show features
- RFC: Demote i686-pc-windows-gnu to Tier 2
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
Rust RFCs
- [disposition: close] RFC: Add descriptive names to doctests
Other Areas
- No Items entered Final Comment Period this week for 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
Upcoming Events
Rusty Events between 2025-03-19 - 2025-04-16 🦀
Virtual
- 2025-03-19 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2025-03-20 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-03-25 | Virtual (London, UK) | Women in Rust
- 2025-03-27 | Virtual (Berlin, DE) | Rust Berlin
- 2025-04-01 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
- 2025-04-02 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-04-03 | Virtual (Nürnberg, DE) | Rust Nurnberg DE
- 2025-04-05 | Virtual | Ardan Labs
- 2025-04-05 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-04-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-04-10 | Virtual (Berlin, DE) | Rust Berlin
- 2025-04-15 | Virtual (Washington, DC, US) | Rust DC
- 2025-04-16 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Asia
- 2025-03-19 | Tel Aviv-Yafo, IL | Rust 🦀 TLV
- 2025-03-28 | Kowloon Tong, HK | Rust Asia
- 2025-04-05 | Bangalore/Bengaluru, IN | Rust Bangalore
Europe
- 2025-03-20 | Edinburgh, UK | Rust and Friends
- 2025-03-20 | Prague, CZ | Rust Prague
- 2025-03-25 | Aarhus, DK | Rust Aarhus
- 2025-03-25 | Eindhoven, NL | RustNL
- 2025-03-25 | London, UK | London Rust Project Group
- 2025-03-26 | Frankfurt, DE | Rust Rhein-Main
- 2025-03-26 | Manchester, UK | Rust Manchester
- 2025-03-26 | Warsaw, PL | Rustikon
- 2025-03-27 | Augsburg, DE | Rust Meetup Augsburg
- 2025-03-29 | Stockholm, SE | Stockholm Rust
- 2025-04-02 | Cambridge, UK | Cambridge Rust Meetup
- 2025-04-02 | München, DE | Rust Munich
- 2025-04-02 | Oxford, UK | Oxford Rust Meetup Group
- 2025-04-02 | Stockholm, SE | Stockholm Rust
- 2025-04-03 | Oslo, NO | Rust Oslo
- 2025-04-08 | Olomouc, CZ | Rust Moravia
- 2025-04-09 | Girona, ES | Rust Girona
- 2025-04-09 | Reading, UK | Reading Rust Workshop
- 2025-04-10 | Karlsruhe, DE | Rust Hack & Learn Karlsruhe
- 2025-04-15 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2025-04-15 | London, UK | Women in Rust
North America
- 2025-03-20 | Mountain View, CA, US | Hacker Dojo
- 2025-03-20 | Nashville, TN, US | Music City Rust Developers
- 2025-03-20 | Redmond, WA, US | Seattle Rust User Group
- 2025-03-21 | México City, MX | Rust MX
- 2025-03-26 | Austin, TX, US | Rust ATX
- 2025-03-26 | New York, NY, US | Rust NYC
- 2025-03-27 | Atlanta, GA, US | Rust Atlanta
- 2025-03-31 | Boulder, CO, US | Solid State Depot
- 2025-04-03 | Chicago, IL, US | Chicago Rust Meetup
- 2025-04-03 | Montréal, QC, CA | Rust Montréal
- 2025-04-03 | Saint Louis, MO, US | STL Rust
- 2025-04-10 | Portland, OR, US | PDXRust
South America
- 2025-04-03 | Buenos Aires, AR | Rust en Español
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
Probably a terrible idea, but I enjoy throwing ideas at the wall, and seeing how sharp their broken fragments are.
– Katt on the RFC #3762 discussion
Thanks to Jacob Lifshay 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