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
Foundation
- Rust Foundation Welcomes OpenAI As Platinum Member
- Rust Commercial Network Launches to Unite Commercial Users of Rust
- Mainmatter Is Bringing Hands-On Rust Training
Newsletters
Project/Tooling Updates
- Bevy 0.19
- Rust PNG crate gets even faster, used by GNOME and Chromium
- kache 0.7.0: caching real-world C/C++ trees
- New Feature in GuardianDB: Introducing the ODM (Object Document Mapper) Layer
- Safe SIMD in Rust, even on the inside
- Ratatui 0.30.2 is released - a Rust library for cooking up terminal user interfaces
- Adding a post-quantum hybrid handshake to a Rust VPN
- From Julia to Rust: a differentiable tensor stack for scientific computing in the agentic AI era
- hotpath-rs 0.18: Profiling Async and Concurrent Rust - Channels and Lock Contention
Observations/Thoughts
- How we found a bug in the hyper HTTP library
- ClickHouse with Alexey Milovidov and Austin Bonander
- Deep dive into iroh: A replacement for WireGuard or a peer-to-peer layer for your application?
- Optimizing #[sqlx::test] rebuild time
- Rewriting the world in Rust
Rust Walkthroughs
- Migrating LiteLLM to Rust - Building the Fastest and Litest AI Gateway
- Safe SIMD in Rust, even on the inside
- Learn Rust Async/Await, Tokio, and TCP Networking by Building an HTTP/1.1 Server
- Building Breakout in Bevy: Step by Step
- Porting 300,000 Lines of C++ and Perl to Rust: A Dual-Oracle Media Metadata Engine
- A data race that doesn't compile
- [video] RustCurious lesson 9: Traits are Interfaces
- [Video] BAML: a new programming language (created in Rust)
- [Video] The Future of Version Control
- [Video] Borrowing Beauty: My Beginner's Quest to Create Approachable Bevy & Rust Code
Crate of the Week
This week's crate is cargo-rdme, a
Thanks to Diogo Sousa 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, Cargo, Rustup or Rust language RFCs.
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.
- AimDB - Non-blocking fallible
try_producefor bounded / non-overwriting buffers - AimDB - Add minimal example: hello-mailbox-async
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 Bluesky 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 Bluesky or Mastodon!
Updates from the Rust Project
515 pull requests were merged in the last week
Compiler
- implement
#[diagnostic::on_unknown]for modules - outline part of
evaluate_goal_rawinto its own#[cold]function - preserve
track_callerfor by-value dyn vtable shims
Library
- add
io::Read::read_leandio::Read::read_be - constify
TryFrom<Vec>for array impl [const] Default for BTreeMap- stabilize
str_from_utf16_endian - stabilize
strip_circumfix - stabilize
substr_rangeandsubslice_range
Cargo
diag: Supportbuild.warningsfor cargo lintsadd: list too-new versions and how to overridehost-config: dont apply target config to host artifactsinstall: Run cargo lints like rustc lintsresolver: hint how to resolve too-new versionstest: skip dwp uplift test without packed debuginfo- add Solaris fcntl file locking
-Zmin-publish-age(RFC #3923)- improved the test error messages when 'rustc -V' fails
- remove windows-sys dependencies older than 0.61
Clippy
- add lint to suggest
as_chunksoverchunks_exactwith constant - new
unnecessary_unwrap_unchecked: lint extra_unused_type_parameters: don't suggest an autofixlet_underscore_future: skip bindings with an explicit type annotation- avoid ICE when evaluating constants containing unsized type args
- avoid
map_unwrap_orfix when default is adjusted - do not check for unused lifetimes in expanded code
- don't trigger
unnecessary_box_returnswhen the size depends on generics - find a shared context for the format string and the
format!call - fix OOM panic for large types on uninit check
- fix
std_instead_of_core: false positives forcore::io/MSRV manual_slice_filldetect for in loops over&mut [T; N]slices- merge comment and cfg checking in
matcheslint pass - perf: check the method name first in
or_fun_call - perf: compare method names before type queries in three lint passes
- perf: run structural checks before const context queries in
question_mark, manual_clampand ranges - perf: skip
match_same_armswork when the lint is allowed - perf: skip tokenizing in
span_contains_cfgwhen no '#' is present - treat
!the same as-inunnecessary_cast
Rust-Analyzer
assists/replace_match_with_if_let: don't parenthesize if-let guardsimplements_trait_unique_with_infcx: only forbid the self type from being an error type- bye bye ted
- do not visit nodes in GC multiple times
- MIR eval mixed bit and byte sizes
- check for
#[cfg]sin tail expression macros - crash on static constants in array length positions
- don't complete
.awaiton receivers of unknown type - don't panic on out-of-range integer literals in const positions
- migrate merge imports to editor
Rust Compiler Performance Triage
This week had a lot of big swings, with two significant perf regressions that are accepted because they unlock future features and perf improvements. We also saw large improvements in the next trait solver due to the performance optimization work happening there.
Triage done by @JonathanBrouwer with help from @Kobzol. Revision range: b5d46ecb..8b6558a0
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.9% | [0.2%, 2.7%] | 184 |
| Regressions ❌ (secondary) |
1.0% | [0.1%, 4.2%] | 160 |
| Improvements ✅ (primary) |
-0.3% | [-0.3%, -0.2%] | 2 |
| Improvements ✅ (secondary) |
-11.8% | [-69.9%, -0.2%] | 25 |
| All ❌✅ (primary) | 0.8% | [-0.3%, 2.7%] | 186 |
5 Regressions, 3 Improvements, 2 Mixed; 4 of them in rollups 30 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
- rustc_lint: Allow scoped
non_ascii_identslint levels - Stabilize
#[my_macro] mod foo;(part ofproc_macro_hygiene) - Implement
IntoIteratorfor[&[mut]] Box<[T; N], A> - Tracking Issue for
string_from_utf8_lossy_owned - Infer all anonymous lifetimes in assoc consts as
'static - consider subtyping when checking if an infer var is sized
- remove
box_patterns - enable eager
param_envnorm in new solver - Lint against iterator functions that panic when
Nis zero
Leadership Council
No Items entered Final Comment Period this week for Cargo, Compiler Team (MCPs only), Language Reference, Language Team, Rust RFCs 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 2026-06-24 - 2026-07-22 🦀
Virtual
- 2026-06-25 | Virtual (Girona, ES) | Rust Girona
- 2026-07-01 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-07-02 | Virtual (Berlin, DE) | Rust Berlin
- 2026-07-02 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-07-02 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-07-04 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-07-05 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-07-07 | Virtual (London, UK) | Women in Rust
- 2026-07-14 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-07-15 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-07-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-07-16 | Virtual (Berlin, DE) | Rust Berlin
- 2026-07-19 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-07-21 | Virtual (London, UK) | Women in Rust
- 2026-07-21 | Virtual (Washington, DC, US) | Rust DC
Asia
- 2026-07-18 | Bangalore, IN | Rust Bangalore
Europe
- 2026-06-24 | Manchester, UK | Rust Manchester
- 2026-06-24 | Trondheim, NO | Rust Trondheim
- 2026-06-25 | Berlin, DE | Rust Berlin
- 2026-06-25 | Copenhagen, DK | Copenhagen Rust Community
- 2026-06-25 | Toulouse, FR | Rust Toulouse
- 2026-06-27 | Stockholm, SE | Stockholm Rust
- 2026-07-02 | Edinburgh, UK | Rust and Friends
- 2026-07-02 | Enschede, NL | Baseflow Tech Meetups
- 2026-07-08 | Dublin, IE | Rust Dublin
- 2026-07-09 | Switzerland, CH | PostTenebrasLab
North America
- 2026-06-24 | Austin, TX, US | Rust ATX
- 2026-06-24 | Los Angeles, CA, US | Rust Los Angeles
- 2026-06-25 | Atlanta, GA, US | Rust Atlanta
- 2026-06-25 | Mountain View, CA, US | Hacker Dojo
- 2026-06-26 | New York, NY, US | Rust NYC
- 2026-06-27 | Boston, MA, US | Boston Rust Meetup
- 2026-07-02 | Saint Louis, MO, US | STL Rust
- 2026-07-04 | Boston, MA, US | Boston Rust Meetup
- 2026-07-09 | Lehi, UT, US | Utah Rust
- 2026-07-11 | Boston, MA, US | Boston Rust Meetup
- 2026-07-15 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-07-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-07-18 | Boston, MA, US | Boston Rust Meetup
- 2026-07-21 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-07-22 | Austin, TX, US | Rust ATX
- 2026-07-22 | Los Angeles, CA, US | Rust Los Angeles
Oceania
- 2026-06-25 | Melbourne, AU | Rust Melbourne
- 2026-07-21 | Barton, AU | Canberra Rust User Group
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
I think this is the wrong decision, and I wish the lang team had stabilized the Late type instead. Better Late than Never.
Thanks to Theemathas for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by:
- nellshamrell
- llogiq
- ericseppanen
- extrawurst
- U007D
- mariannegoldin
- bdillo
- opeolluwa
- bnchi
- KannanPalani57
- tzilist
Email list hosting is sponsored by The Rust Foundation