This Week in Rust 648
⚓ Rust 📅 2026-04-22 👤 surdeus 👁️ 1Hello 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
- RustConf 2026 schedule and registration are live! Early bird ticket prices are available through April 29.
Project/Tooling Updates
- axum-harness: agent-native backend architecture template for Axum — semantic-first, topology-late, multi-agent harness
- lean-decimal: 2~6X faster than
rust_decimal - Building Semantic Version Control in Rust
- Oxanus v1.0 - Job processing library
- flodl 0.5.2: HuggingFace, in Rust
- One Sized trait does not fit all
- tinyboot v0.4.0 Released — The API is Stable
- Slint 1.16 Released
- Danube Messaging adds Key-Shared subscriptions
- Announcing mtp-mount: pure-Rust FUSE mount for MTP devices
- wrkflw v0.8.0 - Validate and Run GitHub Actions locally.
Observations/Thoughts
- Cryptographic Right Answers: Post Quantum and Rust Edition
- Learning rust through an LLM to develop a TUI RSS reader (and what I tell my students)
- What Happens When You Build an Inode-Style Vector in Rust
- Ownership & Borrowing versus Reference Counting
- The Edge of Safe Rust
- [video] Third Online Func Prog Sweden 2026
Rust Walkthroughs
- [video] Build a Full Stack Twitter Clone web application in Rust (Axum & Leptos)
- The Impatient Programmer's Guide to Bevy and Rust: Chapter 12 - Let There Be Networking
- [video] RustCurious lesson 6: Enums and Polymorphism
Crate of the Week
This week's crate is farben, a German-named macro crate for terminal colors.
Thanks to Nik Revenco 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.
- rust-cookbook - Add Asynchronous section with tokio runtime recipes (other high impact examples)
- wacp-platform - Fix test-only clippy drifts in
wacp-runtime/tests.rs+console-db/queries/tests.rs(other good first issues)
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.
- EuroRust | 2026-04-27 | Barcelona, Spain | 2026-10-14 - 2026-10-17
- NDC Techtown | 2026-05-03 | Kongsberg, Norway | 2026-09-21 to 23.
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
542 pull requests were merged in the last week
Compiler
- don't hash
DelayedLints - refactor FnDecl and FnSig non-type fields into a new wrapper type
- suggest removing
&when awaiting a reference to a future - suggest returning a reference for unsized place from a closure
Library
- abort in core
- constify
Index(Mut),Deref(Mut) forVec - core/num: implement feature
integer_cast_extras core::unicode: ReplaceCasedtable withLt- libtest: use binary search for --exact test filtering
- move
std::io::ErrorKindtocore::io
Rustdoc
- fix
redundant_explicit_linksincorrectly firing (or not firing) under certain scenarios - preserve
doc(cfg)on locally re-exported type aliases
Clippy
- add MSRV check for
manual_noop_waker - add
useless_borrows_in_formattinglint - do not propose to refactor when no variant constructor is used
- do not trigger
let_and_returnonlet else - extend
byte_char_slicesto cover arrays - extend
zst_offsetlint to detectNonNull<T>offset calculations - fix a case where
collapsible_matchsuggested a transformation that changes runtime behavior - fix
cloned_ref_to_slice_refsfalse negative onto_owned() - fix
expect_fun_callsuggests wrongly for string slicing - fix
for_kv_mapfalse negative when usingiteranditer_mut - parenthesize
AssocOp::Castin suggestion when replacement operator is<to avoid parse error useless_conversion: do not lint(a..b).into_iter()(for edition migration)
Rust-Analyzer
completion: reduce relevance for deprecated items- remove duplicate lints
- allow crate authors to declare that their trait prefers to be imported
as _ - do not complete unstable items that use an internal feature
- exclude refs(find all refs) from deps and stdlib
- support extract variable in macro call
- add parentheses on record expr for
replace_let_with_if_let - adjust name of
extract_type_alias - allow ambiguity in assoc type shorthand if they resolve to the same assoc type, between supertraits this time
- port call expr type checking and closure upvar inference from rustc
- respect
#[deprecated]attr when deciding if aModuleDefcompletion isdeprecated - some fixes for
upvars_mentioned() - use
ProofTreeVisitorfor unsized coercion - parse
type constitems - perf: do not check solver's cache validity on every access
- sync function call args check fudging with rustc
Rust Compiler Performance Triage
This week was a bit all over the place, but the largest regressions were either already fixed or they are being investigated. There were also a couple of nice perf. wins.
Triage done by @Kobzol. Revision range: dab8d9d1..9ab01ae5
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.7% | [0.2%, 4.6%] | 39 |
| Regressions ❌ (secondary) |
0.6% | [0.2%, 1.4%] | 31 |
| Improvements ✅ (primary) |
-0.6% | [-4.8%, -0.1%] | 70 |
| Improvements ✅ (secondary) |
-0.7% | [-4.1%, -0.0%] | 93 |
| All ❌✅ (primary) | -0.1% | [-4.8%, 4.6%] | 109 |
3 Regressions, 4 Improvements, 6 Mixed; 4 of them in rollups 41 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
- Error on invalid macho section specifier
- Allow trailing
selfin more contexts - Add FCW to disallow
$cratein macro matcher - Lint unused pub items in binary crates
- const-stabilize
char::is_control()
Cargo
Compiler Team (MCPs only)
No Items entered Final Comment Period this week for Language Reference, Language Team, Leadership Council, 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
- Add contribution policy for AI-generated work
- Bounded Trait Casting
- Support heterogeneous try blocks (
try_blocks_heterogeneous) RFC
Upcoming Events
Rusty Events between 2026-04-22 - 2026-05-20 🦀
Virtual
- 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-24 | Virtual (Nairobi, KE) | RustaceansKenya
- 2026-04-28 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-28 | Virtual (London, UK) | Women in Rust
- 2026-04-28 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2026-04-29 | Virtual (Girona, ES) | Rust Girona
- 2026-05-01 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-05-02 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-05-03 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-05-06 | Virtual (Cardiff, GB) | Rust and C++ Cardiff
- 2026-05-06 | Virtual (Girona, ES) | Rust Girona
- 2026-05-06 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-05-07 | Virtual (Berlin, DE) | Rust Berlin
- 2026-05-07 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-05-12 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-05-12 | Virtual (London, UK) | Women in Rust
- 2026-05-13 | Virtual (Girona, ES) | Rust Girona
- 2026-05-17 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-05-19 | Virtual (Washington, DC, US) | Rust DC
- 2026-05-20 | Virtual (Girona, ES) | Rust Girona
- 2026-05-20 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Asia
- 2026-05-13 | Malaysia, MY | Rust Meetup Malaysia
Europe
- 2026-04-23 | Aarhus, DK | Rust Aarhus
- 2026-04-23 | Paris, FR | Rust Paris
- 2026-04-24 - 2026-04-26 | Augsburg, DE | Rust Meetup Augsburg
- 2026-04-25 | Stockholm, SE | Stockholm Rust
- 2026-04-29 | Copenhagen, DK | Copenhagen Rust Community
- 2026-04-29 | Paris, FR | Paris Rustaceans
- 2026-04-30 | Berlin, DE | Rust Berlin
- 2026-04-30 | Manchester, GB | Rust Manchester
- 2026-05-02 | Augsburg, DE | Rust Munich and Rust Augsburg
- 2026-05-04 | Amsterdam, NH, NL | Rust Developers Amsterdam Group
- 2026-05-04 | Frankfurt, DE | Rust Rhein-Main
- 2026-05-05 | Olomouc, CZ | Rust Moravia
- 2026-05-07 | Edinburgh, GB | Rust and Friends
- 2026-05-13 | Girona, ES | Rust Girona
- 2026-05-14 | Switzerland, CH | PostTenebrasLab
- 2026-05-18 | Milano, MI, IT | Rust Language Milan
- 2026-05-19 | Aarhus, DK | Rust Aarhus
- 2026-05-19 | Amsterdam, NL | RustNL
- 2026-05-19 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
- 2026-05-19 | London, UK | Women in Rust
North America
- 2026-04-20 - 2026-04-22 | Portland, OR | Tokio
- 2026-04-22 | Austin, TX, US | Rust ATX
- 2026-04-22 | New York, NY, US | Rust NYC
- 2026-04-22 | Portland, OR | Apache DataFusion Meetup
- 2026-04-23 | Los Angeles, CA, US | Rust Los Angeles
- 2026-04-25 | Boston, MA, US | Boston Rust Meetup
- 2026-04-28 | New York, NY, US | Rust NYC
- 2026-04-30 | Atlanta, GA, US | Rust Atlanta
- 2026-05-07 | Saint Louis, MO, US | STL Rust
- 2026-05-14 | Portland, OR, US | PDXRust
- 2026-05-14 | San Diego, CA, US | San Diego Rust
- 2026-05-19 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-05-20 | San Francisco, CA, US | Bay Area Rust Meetup
Oceania
- 2026-05-14 | Melbourne, AU | Rust Melbourne
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
in Rust we pay the price of composition up-front
Thanks to Nadieril for the self-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
🏷️ Rust_feed