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
- How Josh helps Rust manage code across multiple repositories
- Maintainer spotlight: Tiffany Pek Yuan (@tiif)
Newsletters
Project/Tooling Updates
- Announcing stdx, Rust's extended standard library
- OmniScope 0.2.0 released:FFI static detection tool based on LLVM IR
- Announcing Asterinas 0.18.0
- Oryxis SSH 0.8: split panes
- Ratatui 0.30.1 is released - a Rust library for cooking up terminal user interfaces
- @utoo/pack: A Next-Generation Build Tool Based on Turbopack
- Pico de Gallo - a USB-attached protocol bridge for developing embedded-hal drivers on your laptop
- kache 0.5.0: designing a correct compile-cache key
- Announcing smb2: a very fast pure-Rust SMB2/3 client
Observations/Thoughts
- Only Bounds
- Porting our Django backend to Rust improved the infra usage by 90%
- Decimal Crates Comparison and Benchmark | Chinese version
- TeaQL Robot Task Board: a Rust TUI showcase for auditable business workflows
- [video] Rayon is NOT for games - use this instead
- [audio] Veo with Anders Hellerup Madsen and Gorm Casper
Rust Walkthroughs
- [series] Who Runs Your Rust Future? Hands-On Intro to Async Rust
- Extend MySQL Using Rust
- Learn Rust Smart Pointers and Interior Mutability by Building Git Commit Graph Viewer
- heap underflow: classic algorithm solutions in idiomatic Rust, runnable in the browser
Crate of the Week
This week's crate is rustion, a SSH bastion server.
Thanks to handewo 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.
- cuda-oxide Windows fork - test the Windows MSVC release on more CUDA/Windows setups
- openslate - add unit tests for slugify() in api/src/notes.rs
- openslate - add integration tests for notes CRUD in api/src/notes.rs
- openslate - add integration tests for auth flow in api/src/users.rs
- openslate - add unit tests for build_fts_query() in api/src/search.rs
- openslate - add integration tests for auth middleware and logout in api/src/auth.rs
- openslate - add integration tests for media endpoints (DB layer) in api/src/media.rs
- openslate - add unit tests for ext_from_mime() and filename_from_url() in api/src/media.rs
- reliakit - add a typed_csv example to the umbrella crate
- reliakit - implement CsvField for char
- reliakit - implement CsvField for the core::net address types
- reliakit - write a short "which resilience block do I use?" guide
- reliakit - extract a reusable rolling-window counter from RollingBreaker
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
526 pull requests were merged in the last week
Compiler
- add
extern "tail"calling convention - add very basic "comptime" fn implementation
- avoid
unreachable_codeon required return values - cleanup and optimize
render_impls - macros: report unbound metavariables directly
- rewrite
rustc_span::symbol::Internerto avoid double hashing - staticlib hide internal symbols
Library
- add APIs for case folding to the standard library
- add
_valueAPI for number literals in proc-macro - further optimize
SliceIndex<str>impl forRange<usize> - improve TLS codegen by marking the panic/init path as cold
- perf: use
get_uncheckedforTwoWaySearcher - stabilize
PathBuf::into_string - stabilize
Result::map_or_defaultandOption::map_or_default
Cargo
Rustdoc
- IXCRE: preserve sizedness bounds on type params belonging to the parent item
- don't link
doc(hidden)associated type projections - fix trait impl ordering
- render
implrestriction
Clippy
- support
iter_mutinITER_NEXT_SLICE borrowed_box: clean-up, improve suggestion messagedouble_must_use: make the lint machine-applicable in single-attribute caseiter_cloned_collect: split off the suggestion from the main message- add
manual_isolate_lowest_onelint - detect more ranges in
single_range_in_vec_init - do not trigger
inline_trait_boundson auto-derived code - extend
extra_unused_lifetimesfor spuriousfor<'a> large_const_arrays: check nested large arrays- fix
explicit_counter_loopfalse positive when the counter is only modified inside theelseblock oflet...elsebinding - fix
result_large_errandresult_unit_errnot triggering on async functions - fix
unused_async_trait_implsuggestions with return statements - fix lints duplications in
unknown_attributeandrenamed_builtin_attr - obtaining the metadata of a const pointer is a const operation
- perf: avoid cloning associated items in
empty_line_after - perf: skip the
boxed_localwalk for functions without a Box parameter - perf: skip the
inline_alwaysrelevance walk for items without the attribute
Rust-Analyzer
feat(diagnostics): emit error for infer vars in non-inference contexts- adopt uv's AI policy
- distribute windows builts with mimalloc
- lower field defaults to
rustc_type_ir::Consts RunnableKind::Testshould map toproject_json::RunnableKind::TestOneextract_functionmisses&mutforcontainer[i].mut_method()- do not emit a "type annotations needed" error on
include_bytes!()where the array length cannot be inferred - no generate unused generic params in trait sign
- parse OR pattern types
- rename schema subItems with
sub_items - implement
rust-analyzer/evaluatePredicatelsp extension - parse unnamed
enumvariants
Rust Compiler Performance Triage
A fairly noisy week, with a bunch of small regressions contained within, leading to a slight increase on average in instruction counts. This week had a lot of large rollups, likely due to some CI problems, but thankfully many of those came with pre-triaged perf results by the time (thank you to those triagers!). Roughly similar slight regressions for cycles and wall times across the week.
Triage done by @simulacrum. Revision range: 4804ad7e..f3ef3bd8
2 Regressions, 0 Improvements, 10 Mixed; 5 of them in rollups 32 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
- Document panic in
RangeInclusive::from(legacy::RangeInclusive) - Tracking Issue for explicit-endian String::from_utf16
- Tracking Issue for
substr_rangeand related methods - Decide and document where stdarch intrinsics are allowed to diverge from asm behavior
- Document that
ManuallyDrop's Box interaction has been fixed - Add temporary scope to assert_eq and assert_ne
- Clean up crate type names to fix dylib vs staticlib confusion
- Add
T: PartialEqbounds to derivedStructuralPartialEqimpls. - stabilize feature
float_algebraic
Compiler Team (MCPs only)
Leadership Council
No Items entered Final Comment Period this week for Rust RFCs, Cargo, 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
Upcoming Events
Rusty Events between 2026-06-10 - 2026-07-08 🦀
Virtual
- 2026-06-10 | Virtual (Girona, ES) | Rust Girona
- 2026-06-12 | Virtual (Kenya, KE) | RustaceansKenya
- 2026-06-16 | Virtual (Washington, DC, US) | Rust DC
- 2026-06-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-06-17 | Virtual (Girona, ES) | Rust Girona
- 2026-06-18 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-06-18 | Virtual (Berlin, DE) | Rust Berlin
- 2026-06-21 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-06-23 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-06-23 | Virtual (London, UK) | Women in Rust
- 2026-07-01 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-07-02 | Virtual (Berlin, DE) | Rust Berlin
- 2026-07-02 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-07-05 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-07-07 | Virtual (London, GB) | Women in Rust
Europe
- 2026-06-10 | Köln, DE | Rust Cologne
- 2026-06-10 | München, DE | Rust Munich
- 2026-06-11 | Berlin, DE | Rust Berlin
- 2026-06-11 | Switzerland, CH | PostTenebrasLab
- 2026-06-12 - 2026-06-14 | Kraków, PL | Rustmeet
- 2026-06-16 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2026-06-16 | Milano, IT | Rust Language Milan
- 2026-06-18 | Aarhus, DK | Rust Aarhus
- 2026-06-18 | Barcelona, ES | BcnRust
- 2026-06-19 | Dresden, DE | Rust Dresden
- 2026-06-23 | Paris, FR | Rust Paris
- 2026-06-23 | Warsaw, PL | Rust Warsaw
- 2026-06-25 | Berlin, DE | Rust Berlin
- 2026-07-02 | Edinburgh, GB | Rust and Friends
- 2026-07-02 | Enschede, OV, NL | Baseflow Tech Meetups
- 2026-07-08 | Dublin, IE | Rust Dublin
North America
- 2026-06-11 | Lehi, UT, US | Utah Rust
- 2026-06-11 | Mountain View, CA, US | Hacker Dojo
- 2026-06-11 | San Diego, CA, US | San Diego Rust
- 2026-06-16 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-06-16 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-06-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-06-18 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 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-26 | New York, NY, US | Rust NYC
- 2026-07-02 | Saint Louis, MO, US | STL Rust
Oceania
- 2026-06-11 | Brisbane City, QL, AU | Rust Brisbane
- 2026-06-25 | Melbourne, AU | Rust Melbourne
South America
- 2026-06-18 | Florianópolis, BR | Rust SC
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
It's a footgun, yes, but it's a sound footgun.
– Prof. Dr. Ralf Jung on github
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