Warning
This post was published 48 days ago. The information described in this article may have changed.
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.
This week's crate is primitive_fixed_point_decimal, a crate of real fixed-point decimal types.
Thanks to Wu Bingzheng for the self-suggestion!
Please submit your suggestions and votes for next week!
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.
Let us know if you would like your feature to be tracked as a part of this list.
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.
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!
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!
448 pull requests were merged in the last week
generic_arg_infer
trim_prefix
and trim_suffix
methods for both slice
and str
typesCStr
, CString, and Cow<CStr>
format_args!()
in variableDefault
for array::IntoIter
core::iter::Fuse
's Default
impl to do what its docs say it does#[track_caller]
to its Vec callsToString
implementation for u128
and i128
feat(toml)
: Parse support for multiple build scripts--compile-time-deps
option for cargo build
CacheState::lock
write_shared.rs
Sugg
: do not parenthesize a double unary operatoror_fun_call
: lint more methodsconst
to a functionbranches_sharing_code
suggests misleadingly when in assignmentclippy::question_mark
on let-else with cfgexhaustive_structs
false positive on structs with default valued fieldmanual_ok_err
suggests wrongly with referencesnon_copy_const
ICEwildcard_enum_match_arm
suggests wrongly with raw identifiersborrow_deref_ref
empty_line_after_outer_attr
manual_is_multiple_of
fn parent(self, db) → GenericDef
to hir::TypeParam
folding_ranges
and support more things.cargo/config.toml build.target-dir
+
typing handler as it moves the cursor positionROOT
hygiene for args
inside new format_args!
expansionformat_args!
expansionA week dominated by the landing of a large patch implementing RFC#3729 which unfortunately introduced rather sizeable performance regressions (avg of ~1% instruction count on 111 primary benchmarks). This was deemed worth it so that the patch could land and performance could be won back in follow up PRs.
Triage done by @rylev. Revision range: 45acf54e..42245d34
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
1.1% | [0.2%, 9.1%] | 123 |
Regressions ❌ (secondary) |
1.0% | [0.1%, 4.6%] | 86 |
Improvements ✅ (primary) |
-3.8% | [-7.3%, -0.3%] | 2 |
Improvements ✅ (secondary) |
-2.3% | [-18.5%, -0.2%] | 44 |
All ❌✅ (primary) | 1.0% | [-7.3%, 9.1%] | 125 |
2 Regressions, 4 Improvements, 10 Mixed; 7 of them in rollups 40 artifact comparisons made in total
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
No Items entered Final Comment Period this week for Cargo, 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.
Rusty Events between 2025-06-25 - 2025-07-23 🦀
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.
Please see the latest Who's Hiring thread on r/rust
Our experience is that no matter how many safeguards you put on code, there’s no cure-all that prevents bad programming. Of course, to take the contrary argument, seat belts don’t stop all traffic fatalities, but you could just choose not to have accidents. So we do have seat belts. If Rust can prevent some mistakes or malicious intent, maybe it’s worth it even if it isn’t perfect.
Thanks to Kill The Mule 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
🏷️ rust_feed