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
- Announcing Markdown Ninja: Open Source alternative to Substack, Mailchimp and Netlify
- Hypervisor as a Library
Observations/Thoughts
- Rust turns 10
- Rust 1.0, ten years later
- Evolution of Rust compiler errors
- For your eyes only
- Disable debuginfo to improve Rust compile times
- async/await versus the Calloop Model
- [audio] Astral with Charlie Marsh
Rust Walkthroughs
- Unlocking Tokio's Hidden Gems: Determinism, Paused Time, and Local Execution
- Joining threads immediately as they finish in Rust
- [video] Build with Naz : Rust, Memory performance & latency - locality, access, allocate, cache lines
Miscellaneous
- Scanner- The Team Accelerating Log Analysis With Rust
- $20,000 rav1d AV1 Decoder Performance Bounty
- From C# to Rust: A 42-Day Developer Challenge
Crate of the Week
This week's crate is makepad, an in development shader based live designable OSS UI-Framework.
Thanks to crazust 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, Rust language RFCs or Rustup.
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 X (formerly Twitter) 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 X (formerly Twitter) or Mastodon!
Updates from the Rust Project
353 pull requests were merged in the last week
Compiler
- improve
dangerous_implicit_aurorefs
diagnostic output - improve ternary operator recovery
- perf: fast path for
register_region_obligation
Library
- add
std::io::Seek
instance forstd::io::Take
- optimize
ToString
implementation for integers - stop using TLS in signal handler
- stabilize
#![feature(non_null_from_ref)]
- stabilize the avx512 target features
Cargo
- cargo: allow configuring arbitrary codegen backends
- cargo: feat: skip
publish=false
pkg when publishing entire workspace - cargo: stabilize doctest-xcompile
Clippy
comparison_chain
: do not lint on 2 blocks expressionempty_struct_with_brackets
: do not lint code coming from macro expansionexcessive_precision
: Fix false positive when exponent has leading zeromatch_same_arms
,ifs_same_cond
: lint once per same arm/conditionneedless_match
: do not pretend thatreturn
is not significant in an expressionunnecessary_wraps
: do not include the whole body in the lint span- add new
useless_concat
lint - add the
allow_exact_repetitions
option to themodule_name_repetititions
lint - check if dropping an expression may have indirect side-effects
useless_as_ref
: do not callTyCtxt::type_of()
on a trait- fix ICE while computing type layout
- fix false positive of
useless_conversion
when using.into_iter().any()
- fix:
unnecessary_to_owned
false positive when map key is a reference - make lint span smaller for needless return
- post
non_std_lazy_statics
type warnings onto the right node - reenable linting on UFCS
deref
calls - rewrite
non_copy_const
- use interned symbols instead of strings in more places
Rust-Analyzer
- debounce workspace fetching for workspace structure changes
- highlight unsafe operations
- don't allow duplicate crates in the
all_crates
list - improve asm support
- removing all unused imports removes used imports for imports used for Derive macros
- request cancellation while processing changed files
Rust Compiler Performance Triage
A relatively quiet week, likely caused by not that many PRs being merged as many contributors were at RustWeek and the All Hands event. There were several nice wins in trait solving; the benchmark suite now contains benchmarks that use the new trait solver, so we can now focus on optimizing its performance in the near future.
Triage done by @kobzol.
Revision range: 718ddf66..59372f2c
Summary:
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regressions ❌
(primary) | 0.6% | [0.1%, 1.8%] | 25 |
| Regressions ❌
(secondary) | 0.9% | [0.1%, 3.1%] | 23 |
| Improvements ✅
(primary) | -0.3% | [-0.6%, -0.1%] | 33 |
| Improvements ✅
(secondary) | -2.2% | [-9.2%, -0.1%] | 26 |
| All ❌✅ (primary) | 0.1% | [-0.6%, 1.8%] | 58 |
2 Regressions, 5 Improvements, 3 Mixed; 3 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
No Items entered Final Comment Period this week for Cargo, Rust RFCs, Language Reference, Language Team 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 2025-05-21 - 2025-06-18 🦀
Virtual
- 2025-05-21 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-05-22 | Virtual (Berlin, DE) | Rust Berlin
- 2025-05-22 | Virtual (Girona, ES) | Rust Girona
- 2025-05-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-05-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-05-27 | Virtual (Tel Aviv, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-05-29 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2025-05-29 | Virtual (Tel Aviv-yafo, IL) | Rust 🦀 TLV
- 2025-06-01 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-06-03 | Virtual (Tel Aviv-yafo, IL) | Rust 🦀 TLV
- 2025-06-04 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-06-05 | Virtual (Berlin, DE) | Rust Berlin
- 2025-06-07 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2025-06-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-06-10 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-06-10 | Virtual (London, UK) | Women in Rust
- 2025-06-12 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2025-06-15 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-06-17 | Virtual (Washington, DC, US) | Rust DC
- 2025-06-18 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
Asia
- 2025-05-24 | Bangalore/Bengaluru, IN | Rust Bangalore
- 2025-06-08 | Tel Aviv-yafo, IL | Rust 🦀 TLV
Europe
- 2025-05-22 | Augsburg, DE | Rust Augsburg
- 2025-05-22 | Bern, CH | Rust Bern
- 2025-05-22 | Paris, FR | Rust Paris
- 2025-05-22 | Stockholm, SE | Stockholm Rust
- 2025-05-27 | Basel, CH | Rust Basel
- 2025-05-27 | Vienna, AT | Rust Vienna
- 2025-05-28 | Frankfurt, DE | Rust Rhein-Main
- 2025-05-29 | Oslo, NO | Rust Oslo
- 2025-05-31 | Stockholm, SE | Stockholm Rust
- 2025-06-04 | Ghent, BE | Systems Programming Ghent
- 2025-06-04 | München, DE | Rust Munich
- 2025-06-04 | Oxford, UK | Oxford Rust Meetup Group
- 2025-06-05 | München, DE | Rust Munich
- 2025-06-11 | Reading, UK | Reading Rust Workshop
- 2025-06-17 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2025-05-21 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-05-23 | Boston, MA, US | Boston Rust Meetup
- 2025-05-28 | Albuquerque, NM, US | At Ideas and Coffee
- 2025-05-28 | Austin, TX, US | Rust ATX
- 2025-05-29 | Atlanta, GA, US | Rust Atlanta
- 2025-05-29 | Mountain View, CA, US | Hacker Dojo
- 2025-05-31 | Boston, MA, US | Boston Rust Meetup
- 2025-06-05 | Saint Louis, MO, US | STL Rust
- 2025-06-08 | Boston, MA, US | Boston Rust Meetup
- 2025-06-17 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-06-18 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
Oceania
- 2025-06-16 | Christchurch, NZ | Christchurch Rust Meetup Group
South America
- 2025-05-31 | São Paulo, BR | Rust São Paulo Meetup
- 2025-06-04 | Montevideo, DE, UY | Rust Meetup Uruguay
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
/proc/self/mem
is outside the scope of rust's safety guarantees. otherwise this would open a can of worms that could not be closed except by forbidding debuggers from poking memory or marking every impure function as unsafe.like, what if you invoke gdb to poke memory? what if you modify .bash_profile to poke memory? what if you send an http request to a hypervisor to poke memory? what if you run a spin loop, and the noise of the fans whirring up activates a beam of ionizing radiation pointed directly at the CPU? what if opening the disk drive makes the computer fall off a cliff?
Thanks to Chayim Refael Friedman for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
Email list hosting is sponsored by The Rust Foundation