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
Foundation
Project/Tooling Updates
- Ntpd-rs: it's about time!
- octopos: OS for risc-v in rust
- Building a guitar trainer with embedded Rust
- blogr v0.5.0 - blog without from your terminal
- feedr v0.7.0 - terminal-based RSS/Atom feed reader
- mdterm v2.0.0 - terminal-based Markdown browser
- RustGrep: simple search for 114 Rust blogs
- Rust's next-generation trait solver
- Portable Async Rust
- jsongrep faster than {jq, jmespath, jsonpath-rust, jql}
- SeqPacker: 11 bin-packing algorithms in Rust
- flodl v0.2.2: PyTorch parity in Rust
Observations/Thoughts
- filtra.io | Breaking The AI Infra Monopoly With Rust- Tracel AI
- Rust: Memory safety in kernel space | OSHub
- Fixing our own problems in the Rust compiler
- Bugs that the Rust compiler catches for you: The revolution of compiler-enforced correctness
- I ported the OpenAI Python SDK to Rust in 5 days with Claude Code
- [video] 🦀 Rust (mir) compiler bites: Closures — thou shalt not name this struct
- [video] How C++ Finally Beats Rust at JSON Serialization
Rust Walkthroughs
- Adding WASM Plugins to Your App
- ZK snarks for rust developer part 3/8
- Building a Crash-Safe Email Queue in Rust
- Adding a Scripting Engine to a Rust CLI with Rhai
Crate of the Week
This week's crate is tsastat, a high-resolution Thread State Analysis (TSA) tool for Linux.
Thanks to Ankur Rathore 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.
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.
- NDC Techtown | CFP open until 2024-04-14 | Kongsberg, Norway | 2024-09-09 - 2026-09-12.
- EuroRust | CFP open until 2026-04-27 | Barcelona, Spain | 2026-10-14 - 2026-10-17
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
487 pull requests were merged in the last week
Compiler
- add
x86_64-unknown-linux-gnu{m,t}santarget which enables {M,T}San by default - add
-Zsanitize=kernel-hwaddress
Library
- constify
Steptrait and all of itsimplementations - constify comparisons and
Cloneforcore::mem::Alignment - constify const Fn*: Destruct
- don't drop arguments' temporaries in
dbg! - don't fuse in
MapWindows - implement
unchecked_funnel_{shl,shr} - reimplement
hash_map!macro - make
PinCoerceUnsizedrequireDeref - stabilize new RangeFrom type and iterator
trim_prefixfor paths
Cargo
resolver: better match rustc in error stylingbuild: cover more behavior ofbuild.warningsbuild: make it easier to reviewbuild.warningsbehavior
Rustdoc
Rustfmt
Clippy
- add
manual_option_ziplint (a.and_then(|x| b.map(|y| (x, y)))) - impl
manual_noop_wakerlint explicit_counter_loop: suggest.take(n)forfor _ in 0..nco…iter_kv_map: handle identity map formapandflat_mapmanual_pop_if: lint more cases, even if we do not provide a suggestion- fix
collapsible_iffalse positive when the inner if contains cfg - preserve parentheses in suggestion in presence of cascaded casts
- perf: reduce
matching_root_macro_callusage (23b → 22.24b)
Rust-Analyzer
- fix not applicable on ambiguous ident pat for
merge_match_arms - complete envs in nested
env!() - correct
type_or_constparam index bound indebug_assert - correct missing-args messages for
sched_getaffinityand getenv shims - don't panic unmerge arm on trailing pipe
- fix block lowering in ast id map
- keep comments for 'Fill match arms'
- postfix completions include nots prefix-expr
- skip usages inside macro expansions in destructure struct/tuple binding
- turn back
TyLoweringContext.storeto self after lowering parent defaults - wrap
Option<>fordesugar_try_expr_let_else - wrap
Result<>fordesugar_try_expr_let_else - wrap ty-anchor in non-path type constuctor
- fully implement
VariantFields expression support - hookup Signature Inference in more places
- only allocate item blocks if they actually contain items or statement macros
- remove
ArcfromGenericParamsandAstIdMap - remove generate trait impl text intransitive from utils
Rust Compiler Performance Triage
We had some infrastructure troubles this week which prevented some rollup PRs from generating their "unrolled" builds, which made rollup regression investigation more complicated, although we were able to locate and revert the largest rollup regressions in the end. #154304 brought some nice improvements by optimizing the query system.
Triage done by @kobzol. Revision range: 6f22f613..cf7da0b7
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.4% | [0.1%, 1.2%] | 4 |
| Regressions ❌ (secondary) |
0.3% | [0.1%, 0.5%] | 12 |
| Improvements ✅ (primary) |
-0.8% | [-6.2%, -0.2%] | 58 |
| Improvements ✅ (secondary) |
-0.4% | [-1.9%, -0.1%] | 28 |
| All ❌✅ (primary) | -0.8% | [-6.2%, 1.2%] | 62 |
3 Regressions, 4 Improvements, 2 Mixed; 2 of them in rollups 35 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
- Tracking Issue for
isolate_most_least_significant_one - Tracking Issue for
int_lowest_highest_one - Tracking Issue for
uint_bit_width - Tracking Issue for #138068: Add
Result::map_or_defaultandOption::map_or_default - Do not use non-wf input expectations from fudge when checking function calls
- Syntactically reject equality predicates
- Tracking Issue for tcp_deferaccept
- stabilize s390x vector registers
- Replacing self overwriting with proper resolution
Rust RFCs
No Items entered Final Comment Period this week for Cargo, Compiler Team (MCPs only), Language Team, Language Reference, Leadership Council 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-04-01 - 2026-04-29 🦀
Virtual
- 2026-03-26 | Virtual (Berlin, DE) | Rust Berlin
- 2026-03-31 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2026-04-01 | Virtual (Girona, ES) | Rust Girona
- 2026-04-01 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-04-02 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-04-04 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-04-05 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-07 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2026-04-09 | Virtual (Berlin, DE) | Rust Berlin
- 2026-04-14 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2026-04-14 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-14 | Virtual (London, UK) | Women in Rust
- 2026-04-15 | Virtual (Girona, ES) | Rust Girona
- 2026-04-15 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2026-04-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-04-19 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-21 | Virtual (Washington, DC, US) | Rust DC
- 2026-04-22 | Virtual (Girona, ES) | Rust Girona
- 2026-04-23 | Virtual (Amsterdam, NL) | Bevy Game Development
- 2026-04-23 | Virtual (Berlin, DE) | Rust Berlin
- 2026-04-28 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-28 | Virtual (London, UK) | Women in Rust
- 2026-04-29 | Virtual (Girona, ES) | Rust Girona
Asia
- 2026-04-11 | Bangalore, IN | Rust Bangalore
- 2026-04-17 | Bangalore, IN | Rust India
- 2026-04-18 | Bangalore, IN | Rust India
Europe
- 2026-04-01 | Berlin, DE | Rust Berlin
- 2026-04-01 | Edinburgh, UK | Rust and Friends
- 2026-04-01 | Köln, DE | Rust Cologne
- 2026-04-01 | Oxford, UK | Oxford ACCU/Rust Meetup.
- 2026-04-02 | London, UK | Rust London User Group
- 2026-04-02 | Toulouse, FR | Rust Toulouse
- 2026-04-03 | Edinburgh, UK | Rust and Friends
- 2026-04-07 | Basel, CH | Rust Basel
- 2026-04-07 | Frankfurt, DE | Rust Rhein-Main
- 2026-04-08 | Virtual (Girona, ES) | Rust Girona
- 2026-04-09 | Geneva, CH | Rust Meetup Geneva
- 2026-04-09 | Oslo, NO | Rust Oslo
- 2026-04-21 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2026-04-23 | Aarhus, DK | Rust Aarhus
North America
- 2026-04-02 | Mountain View, CA, US | Hacker Dojo
- 2026-04-02 | Saint Louis, MO, US | STL Rust
- 2026-04-04 | Boston, MA, US | Boston Rust Meetup
- 2026-04-07 | New York, NY, US | Rust NYC
- 2026-04-09 | Chicago, IL, US | Chicago Rust Meetup
- 2026-04-09 | San Diego, CA, US | San Diego Rust
- 2026-04-11 | Boston, MA, US | Boston Rust Meetup
- 2026-04-14 | Charlottesville, VA, US | Charlottesville Rust Meetup
- 2026-04-15 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-04-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-04-18 | Boston, MA, US | Boston Rust Meetup
- 2026-04-20 - 2026-04-22 | Portland, OR | Tokio
- 2026-04-21 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-04-22 | Austin, TX, US | Rust ATX
- 2026-04-23 | Los Angeles, CA, US | Rust Los Angeles
- 2026-04-25 | Boston, MA, US | Boston Rust Meetup
Oceania
- 2026-04-09 | Brisbane City, QL, AU | Rust Brisbane
South America
- 2026-04-11 | Buenos Aires, AR | Oxidar Org
- 2026-04-17 | Rio de Janeiro, BR | Meetups Rust RJ
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
When you do cursed things, problems find you.
– Folkert de Vries on the trifecta tech blog
We have gone four weeks bare of suggestions for quotes. llogiq is still fine with his choice, but he'd be much more happy if any of you would help him in his search.
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