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
Project/Tooling Updates
- toml v0.9
- Announcing dynify: Pin-init trait objects on the stack in stable Rust
- What's new in Ratatui 0.30.0?
- Introducing Tyr, a new Rust DRM driver
- RustFS: distributed object storage and MinIO alternative written in Rust
- Rama 0.3.0-alpha.1 - A Protocol Leap Forward
- Streaming data analytics, Fluvio 0.18.1 release
Observations/Thoughts
- Bootstrapping Rust with GCC
- The journey towards the best error handling in Rust web frameworks
- Unsoundness and accidental features in the #[target_feature] attribute
- Tree-Structured Concurrency II: Replacing Background Tasks With Actors
- Rapid Machine Learning Prototyping in Rust
- 330× faster: Four different ways to speed up your code
- Programming Extensible Data Types in Rust with CGP, Part 1 and Part 2
- Making Unsafe Rust a Little Safer: Find Memory Errors in Production with GWP-ASan
- Deterministic Simulation Testing in Rust: A Theater Of State Machines
- Slint Material Components Tech Preview
- Memory-safe malware: Rust challenges security researchers
- The scary and surprisingly deep rabbit hole of Rust's temporaries
- The 4 pillars of Rust's superiority
Rust Walkthroughs
- JavaScript is being rewritten in Rust
- Rust Security Best Practices 2025
- From 'It Might Work' to 'It Will Work': Typestate in Rust
- Tactical Trust (1 of 2): Platform Crypto for Developers in Rust
Crate of the Week
This week's crate is flac-coded, an implementation of (unsurprisingly) the Free Lossless Audio Codec (FLAC) file format.
Thanks to tuffy for the 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, Cargo 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 - Implement all JWA algorithms
- rama - support X-Clacks-Overhead (response) http header
- rama - Feature Request: Dynamic Local IPv4/IPv6 Binding for TcpConnector
- 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.
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
588 pull requests were merged in the last week
Compiler
- rewrite
macro_rules!
parser to not use the MBE engine itself - loop match: fix 'no terminator on block'
- loop match: handle opaque patterns
- align attr fixes
- avoid suggesting traits from private dependencies
- detect more cases of
unused_parens
around types - make metadata a workproduct and reuse it
- remove some unnecessary
unsafe
in VecCache - start moving wf checking away from HIR
Library
- stabilize
mixed_integer_ops_unsigned_sub
- add
Vec::into_chunks
- add
const Rem
- add methods for converting bool to
Result<(), E>
- change
{Box,Arc,Rc,Weak}::into_raw
to only work withA = Global
Cargo
- publish: Stabilize multi-package publishing
- implement package feature unification
- report valid file name when we can't find a build target for
name = "foo.rs"
Miri
Rustdoc
- fix rustdoc not correctly showing attributes on re-exports
- don't treat methods under const impls or traits as const
Clippy
neg_multiply
should preserve parenthesis when method is calleddoc_nested_refdefs
: do not falsely report checkboxes as refdefsor_fun_call
: also lintand
method forOption
/Result
- do not lint intrinsics as empty loops
- do not remove
as
if it changes the type - don't remove explicit cast to trait object pointer
- fix
std-instead-of-core
false positive when not all items come from the new crate redundant_closure_call
: lint for closures with block- improve floating point lint to handle ambiguous type
- handle potentially-shadowing bindings in
manual_let_else
- propagate
accept-comment-above-attributes
to statements return_and_then
: prevent false positives in case of a partially used expression
Rust-Analyzer
- add
AsMut
,Borrow
andBorrowMut
to minicore andfamous_defs
- add
fn load_workspace_into_db
variant forra_ap_load_cargo
's fnload_workspace
- always couple
--compile-time-deps
with - include
enum
variants in world symbols - fix a case where the link type was
None
- fix diverging destructuring assignments
- fix some things with builtin derives
- honor
rust-analyzer.cargo.noDeps
option when fetching sysroot metadata - improve diagnostic ranges for
macro_calls!
- fix incorrect closure capturing for let exprs
- resolve HIR display length issues and improve adjustment tooltips
- resolve item in match bind
- improve flycheck and build script progress reporting
- re-enable fixpoint iteration for variance computation
- restructure proc-macro loading erros, differentiate hard error property on kind
- workaround missing none group support in builtin macros
Rust Compiler Performance Triage
Busy week. Results are dominated by changes that trade some wins for some losses in small incremental scenarios. We also had a lot of noise and spurious small changes on various PRs. Some regressions come from perf related work where we expect to get some wins back later.
Triage done by @panstromek. Revision range: ad3b7257..0d11be5a
Summary:
Note: We switched to a new benchmark machine at the begining of the period. We show summary based on slightly adjusted range 6988a8fe..8df4a58a to avoid misleading comparisons from different machines.
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
1.1% | [0.2%, 4.3%] | 128 |
Regressions ❌ (secondary) |
1.0% | [0.2%, 3.9%] | 84 |
Improvements ✅ (primary) |
-3.5% | [-7.2%, -0.2%] | 48 |
Improvements ✅ (secondary) |
-5.1% | [-42.6%, -0.2%] | 68 |
All ❌✅ (primary) | -0.2% | [-7.2%, 4.3%] | 176 |
3 Regressions, 3 Improvements, 11 Mixed; 6 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:
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
Language Reference
No Items entered Final Comment Period this week for Rust RFCs, Cargo, 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
- No New or Updated RFCs were created this week.
Upcoming Events
Rusty Events between 2025-07-09 - 2025-08-06 🦀
Virtual
- 2025-07-13 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-07-15 | Virtual (London, UK) | Women in Rust
- 2025-07-15 | Virtual (Washington, DC, US) | Rust DC
- 2025-07-16 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-07-17 | Hybrid (Redmond, WA, US) | Seattle Rust User Group
- 2025-07-17 | Virtual (Berlin, DE) | Rust Berlin
- 2025-07-20 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-07-22 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-07-22 | Virtual (London, UK) | Women in Rust
- 2025-07-24 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2025-07-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-07-31 | Virtual (Berlin, DE) | Rust Berlin
- 2025-08-02 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-08-03 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-08-06 | Virtual (Indianapolis, IN, US) | Indy Rust
Asia
- 2025-07-26 | Bangalore, IN | Rust Bangalore
Europe
- 2025-07-09 | Girona, ES | Rust Girona
- 2025-07-09 | Reading, UK | Reading Rust Workshop
- 2025-07-10 | Berlin, DE | Rust Berlin
- 2025-07-15 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2025-07-15 | London, UK | London Rust Project Group
- 2025-07-23 | Dortmund, DE | Rust Dortmund
- 2025-07-24 | Edinburgh, UK | Rust and Friends
- 2025-07-24 | Nuremberg/Nürnberg, DE | Rust Nuremberg
- 2025-07-29 | Manchester, UK | Rust Manchester
- 2025-07-29 | Prague, CZ | Rust Czech Republic
- 2025-07-30 | Amsterdam, NL | Rust Developers Amsterdam Group
- 2025-07-31 | Augsburg, DE | Rust Meetup Augsburg
North America
- 2025-07-09 | Phoenix, AZ, US | Desert Rust
- 2025-07-10 | Mountain View, CA, US | Hacker Dojo
- 2025-07-10 | Portland, OR, US | PDXRust
- 2025-07-15 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-07-16 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-07-17 | Chicago, IL, US | Chicago Rust Meetup
- 2025-07-17 | Hybrid (Redmond, WA, US) | Seattle Rust User Group
- 2025-07-17 | Nashville, TN, US | Music City Rust Developers
- 2025-07-23 | Austin, TX, US | Rust ATX
- 2025-07-24 | Mountain View, CA, US | Hacker Dojo
- 2025-07-31 | Atlanta, GA, US | Rust Atlanta
South America
- 2025-07-12 | São Paulo, BR | Rust São Paulo Meetup
- 2025-07-17 | Florianópolis, BR | Rust Brazil + Rust Floripa
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
You might be asking: why did you rewrite [...] in Rust? And yeah, I don’t really have a good reason. It’s a hobby project. Like gardening, but with more segfaults.
– Collin Richards on their blog
Thanks to robin 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