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
- Rust participates in Google Summer of Code 2025
- February Project Goals Update
- Announcing Rustup 1.28.0
Newsletters
Project/Tooling Updates
- Announcing Wiremocket: Wiremock For Websockets
- A More Modular reqwest
- memberlist 0.6 - gossip protocol for cluster membership management
- Maelstrom Clustered Test Runner v0.13: new watch mode and GitHub workflow support
- Bincode 2.0.0
Observations/Thoughts
- The problem with type aliases
- Take a break: Rust match has fallthrough
- Fast columnar JSON decoding with arrow-rs
- Some things that make Rust lifetimes hard to learn
- Performance optimization, and how to do it wrong
- Do not run any Cargo commands on untrusted projects
- Cargo's missing stability guarantees
- [video] Rust Under the Hood
- [video] 9 Rules for Porting Rust to the Browser
Rust Walkthroughs
- The power of interning: making a time series database 2000x smaller in Rust
- Lowering Top Level Items
- Building a DNS Server in Rust: Part 1 of 2
Miscellaneous
- [video] Rust's Global Allocator
- [video] Vulkanised 2025: Shipping a Game with Vulkan and Rust in 100 Days
- [video] Creating a website on GitHub pages with mdBook
- EuroRust 2025 Paris announced
- Please nominate newer innovative projects for GOSIM Rust Spotlight ASAP!
Crate of the Week
This week's crate is wild, a pretty fast linker written in Rust.
Thanks to Mateusz Mikuła for the (sort of 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.
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.
No Calls for participation were submitted this week.
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.
EuroRust 2025| 2025-05-15 | Paris | 2025-10-09–2025-10-10
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
502 pull requests were merged in the last week
Compiler
- introduce
feature(generic_const_parameter_types)
- fix parsing of ranges after unary operators
- implement
#[cfg]
inwhere
clauses - optimize empty provenance range checks
Library
- add
IntoBounds::intersect
andRangeBounds::is_empty
- fix Windows
Command
search path bug - stabilize
core::str::from_utf8_mut
asconst
- stabilize
extract_if
- stabilize
hash_extract_if
Cargo
- cargo: add SBOM support (RFC #3553)
- cargo: cli: forward bash completions of third party subcommands
- cargo: add completions for
--lockfile-path
- cargo: reset $CARGO if the running program is real
cargo[.exe]
- cargo: get all members as
available targets
even though default-members was specified - cargo: implemented
build.build-dir
config option
Rustdoc
librustdoc
: returnimpl fmt::Display
in more places instead of writing to strings- fully qualify
Result
in generated doctest code
Rustfmt
Clippy
- new lints:
manual_midpoint
, addunnecessary_debug_formatting
lint - move
comparison_chain
fromstyle
topedantic
macro_use_import
: Don't check is attribute comes from expansionmanual_strip
: use existing identifier instead of placeholderneedless_collect
: avoid warning if non-iterator methods are used- check for MSRV attributes in late passes using the HIR
- configuration option to lint
incompatible_msrv
in test code - extend {
implicit
,inverted
}_saturating_sub
to expressions - fix ICE in
doc_nested_refdefs
check by checking range - fix ICE in
manual_map
lint - fix:
map_entry
false positive inside closure - fix:
map_entry
suggest wrongly when key is notCopy
- lint more cases with
ptr_eq
- split
needless_lifetime '_
suggestions intoelidable_lifetime_names
Rust-Analyzer
- rust-analyzer: add
identifier
to pull diagnostic LSP capabilities - rust-analyzer: add anchor for intra-doc links to associated items
- rust-analyzer: add flip or-pattern assist
- rust-analyzer: allow "package/feature" format feature flag
- rust-analyzer: allow rust-project.json to specify sysroot workspace
- rust-analyzer: allow unsetting default cfgs
- rust-analyzer: cofigurate out ohos target to avoid compilation crashes
- rust-analyzer: completion-ref-matching
- rust-analyzer: doc tests
- rust-analyzer: doc: remove nit from setup.md
- rust-analyzer: fix prefix adjustment hints unnecessarily introducing parens
- rust-analyzer: fix sysroot crate-graph construction not mapping crate-ids for proc-macros
- rust-analyzer: have
inline_local_variable
use precedence calculation for parentheses - rust-analyzer: remove syntax editing from parenthesis computation
- rust-analyzer: support tuple
struct
patterns forexpand_rest_pattern
assist - rust-analyzer: warn when the used toolchain looks too old for rust-analyzer
Rust Compiler Performance Triage
A pretty quiet week, with minimal changes in performance (positive or negative).
Triage done by @simulacrum. Revision range: f5729cfe..daf59857
1 Regressions, 4 Improvements, 1 Mixed; 2 of them in rollups 29 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
- Denote
ControlFlow
as#[must_use]
- Turn order dependent trait objects future incompat warning into a hard error
- Stabilize
const_vec_string_slice
- add a "future" edition
- Tracking Issue for const_sockaddr_setters
Rust RFCs
- RFC: Deprecate the per-build-target
edition
field inCargo.toml
- RFC: Demote i686-pc-windows-gnu to Tier 2
Cargo
Other Areas
- *No Items entered Final Comment Period this week for 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
- Local Default Bounds to assist
Forget
and other?Trait
. Forget
marker trait- RFC: Crate changelog field
Upcoming Events
Rusty Events between 2025-03-05 - 2025-04-02 🦀
Virtual
- 2025-03-05 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-03-06 | Virtual (Nürnberg, DE) | Rust Nurnberg DE
- 2025-03-06 | Virtual (Rotterdam, NL) | Bevy Game Development
- 2025-03-06 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-09 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-09 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 2025-03-11 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-03-11 | Virtual (London, UK) | Women in Rust
- 2025-03-13 | Virtual (Berlin, DE) | Rust Berlin
- 2025-03-18 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-18 | Virtual (Washington, DC, US) | Rust DC
- 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
Africa
- 2025-03-11 | Johannesburg, ZA | Johannesburg Rust Meetup
Asia
- 2025-03-15 | Beijing, CN | WebAssembly and Rust Meetup (Wasm Empowering AI)
- 2025-03-19 | Tel Aviv-Yafo, IL | Rust 🦀 TLV
- 2025-03-28 | Kowloon Tong, HK | Rust Asia
Europe
- 2025-03-05 | Barcelona, ES | BcnRust
- 2025-03-05 | Köln, DE | Rust Cologne
- 2025-03-05 | Oxford, UK | Oxford Rust Meetup Group
- 2025-03-07 | Prague, CZ | Rust Czech Republic
- 2025-03-12 | Reading, UK | Reading Rust Workshop
- 2025-03-13 | Biel, CH | Rust Bern
- 2025-03-14 | Paris, FR | Rust in Paris
- 2025-03-18 | Basel, CH | Rust Basel
- 2025-03-18 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 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-26 | Warsaw, PL | Rustikon
- 2025-03-27 | Augsburg, DE | Rust Meetup Augsburg
- 2025-04-02 | München, DE | Rust Munich
- 2025-04-02 | Oxford, UK | Oxford Rust Meetup Group
North America
- 2025-03-06 | Montréal, QC, CA | Rust Montréal
- 2025-03-06 | Mountain View, CA, US | Hacker Dojo
- 2025-03-06 | Saint Louis, MO, US | STL Rust
- 2025-03-10 | Boston, MA, US | Boston Rust Meetup
- 2025-03-13 | Chicago, IL, US | Chicago Rust Meetup
- 2025-03-18 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-03-18 | Spokane, WA, US | Spokane Rust
- 2025-03-20 | Mountain View, CA, US | Hacker Dojo
- 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-27 | Atlanta, GA, US | Rust Atlanta
- 2025-03-31 | Boulder, CO, US | Solid State Depot
Oceania
- 2025-03-11 | Christchurch, NZ | Christchurch Rust Meetup Group
South America
- 2025-03-15 | 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
The performance impact of moving to Rust – and this is a common theme across everything done when we've moved from C/C++ to Rust – we saw a 5 to 15% performance Improvement.
I'll say that one of the ways that you could attack that kind of stat is say well you rewrote it so whenever you rewrite something you're going to improve it and if you'd rewritten it in C or C++ you would have also seen an improvement like that but the fact is we did not intend to get a performance Improvement. This was purely a porting exercise and we saw this now.
And the other aspect of this is that we never see performance regressions either when we're doing our ports [...]
– Mark Russinovich at RustNationUK '25'
Despite lacking suggestions, llogiq is quite pleased with his choice.
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