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.
Official
Newsletters
Project/Tooling Updates
- Announcing Topcoat: a framework for building full-stack reactive web apps with Rust
- Syn 3.0.0
- What’s New in RustRover 2026.2
- kobe 0.35.0: readiness gates and cert recycling
- Comhad v0.1.0: a ranger-style tui cyberduck replacement for browsing S3
- Nova v0.2.1: computer-use MCP server
- winit now has comprehensive cross-platform drag-and-drop support, exposing most of the power of the underlying OS APIs
- crimson-crab v0.1.0 - a production-grade Rust SDK for the Claude API (streaming, tool use, prompt caching, batches)
- ferrovec: dependency-light HNSW vector search in Rust, compiled to WebAssembly for private in-browser semantic search
- OrdoFP 0.1.0 released — a functional-programming toolbelt for Rust (HList, GAT type classes, optics, effects, monad transformers)
- Freya 0.4
- buildline: merging cargo and ninja's build profiling into one timeline
- cochlea 0.3.0: melody read-back, MFCC timbre, a master limiter, and MIDI import for the deterministic agent-audio engine
- flodl 0.6.0: multi-host heterogeneous DDP - mismatched GPUs across hosts beat the fastest card alone
- hwatu: a daemon-based WebKitGTK browser for tiling WMs with ~13ms window spawn
- kache 0.11.0: broader compiler coverage and libc-aware keys
tracing-reload- reload layer without panics- Introducing OpenTypeless: Voice Input That Actually Works
- Reading a Rust crate's capabilities out of its compiled symbols
Observations/Thoughts
- Battery packs: Let's talk about crates, baby
- Capture Clauses as Effects
- Hardening Rust Code For Production
- Tokio Gives Progress, Not Ordering: Scheduling 1M Tasks
- Rust service hardening and production checklist
- [audio] The Rust Foundation with Rebecca Rumbul, Lori Lorusso, and David Wood, Rust Foundation leadership and board
- [video] Jon Gjengset: Open Source Maintenance 2026-07-18
- [video] Rust Release Changelog - 1.97.0
- [video] Livestream: Rust in Ubuntu
Rust Walkthroughs
- I hash-chained my agent's audit log. Then I found 13 breaks in it — all mine, all benign.
- Two tricky bugs in a Rust daemon
- [video] Backend Concepts in Rust: Securely Managing App Secrets
- [video] Build with Naz - Ep 21: High Performance Flat 2D Arrays in Rust (SIMD, L1 cache)
Crate of the Week
This week's crate is xan, a TUI toolkit to work with CSV files.
Thanks to Simeon H.K. Fitch for the 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.
- 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 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.
- 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 Bluesky or Mastodon!
Updates from the Rust Project
576 pull requests were merged in the last week
Compiler
- account for async closures when pointing at lifetime in return type
- comptime inherent impls
dep_graph: deduplicate task reads with an epoch-filtered index recorder- eagerly check for ambiguity in macro parsing
- implement
#[diagnostic::opaque]attribute to hide backtraces of macros - shrink
ast::Expr64
Library
- add explicit
Iterator::countimpl forstr::EncodeUtf16 - implement
bool::toggle - implement
const_binary_search - implement
Debughelpers viaCell - implement
VecDeque::truncate_to_range - make
pin!()more foolproof - move
std::io::BufReadtoalloc::io - move
std::io::Readtoalloc::io - move
std::io::read_to_stringtoalloc::io
Cargo
- use PGO for Cargo
timings: only report units the job queue actually ran- do not include proc-macro deps in rustc search path args
- include SBOM outputs in fingerprints
- lazily initialize git2 fetch transports
Rustdoc
Clippy
- add
block_scrutineelint - avoid invalid
ref_as_ptrsuggestions in const/static initializers - detect
== 0on unsigned types as amanual_clamplower bound - fix
if_not_elselinting on macro expanded conditions - fix
needless_collectsuggests a suggestion that cannot be typed non_zero_suggestions: don't lint signed integer div/rem as NonZeromanual_filter: don't eat comments in theand_thensuggestion- require the use of
as _for indirectly used traits in clippy sources - rewrite
min_ident_chars - use
#[must_use]determination from the compiler
Rust-Analyzer
- avoid index panic when flycheck list is empty
- add capture hints to coroutines
- add handler for E0572
- do not assume array destructuring assignments with rest pattern are constant-sized
- eagerly normalize
.await'sIntoFuture::Output - enable auto trait inference
- extract variable preserving whitespace from macro input
- fix coroutines not recording binding owners correctly
- fix crashes in assists due to
.unwrap()calls in SyntaxFactory - fix
hircrate leaking bound variables from skipped binders - fix
InferenceContext:identity_argsusing the wrong DefId - fix syntax bridge panic when spilting float
- handle
enumvariants in next-solvergenerics - implement lowering of HRTB
- invalid
pattern_matching_variantlowering due to recovery - merge
WherePredicate::ForLifetimesintoWherePredicate::TypeBound - only write anon const ty in parent's inference result if it doesn't have its own inference
- panic with a function item and a proc macro item having a duplicate name
- parser to error on macro type bound
- spawn proc-macro servers on requests clearing the client cache
- use quote! inside
ast::make::expr_call() - use
Resultfor the lsp-serverResponsepayload type - record expressions in types in
ExprScope
Rust Compiler Performance Triage
The two most notable changes this week were #159115, which resulted in pretty nice instruction count wins for full incremental builds on several benchmarks, and #159091, which enabled PGO for rustdoc, which makes it ~3-4% faster across the board.
There were two large rollups with tiny performance regressions, which made it difficult to find the offending PRs.
Triage done by @Kobzol. Revision range: 5503df87..d527bc9b
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.4% | [0.2%, 1.0%] | 40 |
| Regressions ❌ (secondary) |
0.7% | [0.2%, 4.6%] | 69 |
| Improvements ✅ (primary) |
-2.0% | [-6.2%, -0.2%] | 136 |
| Improvements ✅ (secondary) |
-2.6% | [-8.4%, -0.2%] | 119 |
| All ❌✅ (primary) | -1.4% | [-6.2%, 1.0%] | 176 |
2 Regressions, 3 Improvements, 6 Mixed; 4 of them in rollups 34 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.
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
- Tracking Issue for
bool::toggle - Tracking Issue for vec_try_remove
- Avoid computing layout of enums with non-int discriminants
- Tracking Issue for const_btree_len
- Add
raw_borrows_via_referenceslint - stabilize size_of_val_raw, align_of_val_raw, Layout::for_value_raw
- rustc_passes: lint unused
#[path]attributes on inline modules
Compiler Team (MCPs only)
- Emit
notewhen callingrustcwithout specifying an edition - Let the OS handle stack growth
- Add
target_feature_available_at_call_site
Leadership Council
Unsafe Code Guidelines
No Items entered Final Comment Period this week for Cargo, Language Reference, Language Team or Rust RFCs.
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 2026-07-22 - 2026-08-19 🦀
Virtual
- 2026-07-24 | Virtual (Girona, ES) | Rust Girona
- 2026-07-28 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-07-28 | Virtual (Washington, DC, US) | Rust DC
- 2026-07-30 | Virtual (Berlin, DE) | Rust Berlin
- 2026-07-31 | Virtual (Girona, ES) | Rust Girona
- 2026-08-01 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-08-02 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-08-04 | Virtual (London, UK) | Women in Rust
- 2026-08-05 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-08-07 | Virtual (Girona, ES) | Rust Girona
- 2026-08-11 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-08-13 | Virtual (Berlin, DE) | Rust Berlin
- 2026-08-13 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-08-14 | Virtual (Girona, ES) | Rust Girona
- 2026-08-18 | Virtual (Washington, DC, US) | Rust DC
- 2026-08-19 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
Africa
- 2026-08-11 | Johannesburg, ZA | Johannesburg Rust Meetup
Asia
- 2026-07-25 | Mumbai, IN | Rust Mumbai
- 2026-07-26 | Pune, IN | Rust Pune
Europe
- 2026-07-23 | Berlin, DE | Rust Berlin
- 2026-07-23 | London, UK | Rust London User Group
- 2026-07-23 | London, UK | London Rust Project Group
- 2026-07-23 | Paris, FR | Rust Paris
- 2026-07-25 | Stockholm, SE | Stockholm Rust
- 2026-07-27 | Augsburg, DE | Rust Meetup Augsburg
- 2026-07-29 | Poland, PL | Rust Poland
- 2026-07-30 | Copenhagen, DK | Copenhagen Rust Community
- 2026-07-30 | Manchester, UK | Rust Manchester
- 2026-08-18 | Aarhus, DK | Rust Aarhus
- 2026-08-18 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2026-07-22 | Austin, TX, US | Rust ATX
- 2026-07-22 | Los Angeles, CA, US | Rust Los Angeles
- 2026-07-22 | New York, NY, US | Rust NYC
- 2026-07-23 | Mountain View, CA, US | Hacker Dojo
- 2026-07-25 | Boston, MA, US | Boston Rust Meetup
- 2026-07-25 | Brooklyn, NY, US | Flower
- 2026-07-30 | Atlanta, GA, US | Rust Atlanta
- 2026-08-01 | Boston, MA, US | Boston Rust Meetup
- 2026-08-04 | Boston, MA, US | Boston Rust Meetup
- 2026-08-06 | Saint Louis, MO, US | STL Rust
- 2026-08-13 | Lehi, UT, US | Utah Rust
- 2026-08-13 | San Diego, CA, US | San Diego Rust
- 2026-08-15 | San Francisco, CA, US | Flower
- 2026-08-18 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-08-19 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
Oceania
- 2026-07-23 | Perth, AU | Rust Perth Meetup Group
- 2026-07-30 | Melbourne, AU | Rust Melbourne
South America
- 2026-08-08 | São Paulo, SP | Rust-SP
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
We were planning on publishing a blog post announcing this at the same time as making the repo public, but ran out of private repo CI usage 😭.
– Carl Lerche on r/rust about the launch of topcoat
Despite a lamentable lack of suggestions, llogiq is glad to have found this quote.
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
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.