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 on X (formerly Twitter) 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
Project/Tooling Updates
- 🦀 Automating Rust Dependency Management - A Deep Dive into cargo-autodd
- zlib-rs is faster than C
- This month in Servo: new webview API, relative colors, canvas buffs, and more!
- esp-hal 1.0.0 beta announcement
- Nyx Space and Rust Power Firefly's Blue Ghost Lunar Landing
Observations/Thoughts
- View types redux and abstract fields
- Rust edition 2024 annotated
- A Rustacean's Guide to Embedded World 2025
- Demystifying monads in Rust through property-based testing
- Tokio + prctl = nasty bug
- How Rust & Embassy Shine on Embedded Devices (Part 2): Insights for Everyone and Nine Rules for Embedded Programmers
- A length-indexed Vector in Rust - Part 2
Rust Walkthroughs
Miscellaneous
Crate of the Week
This week's crate is hiqlite, a database project combining SQLite with OpenRaft to enable high-availability applications with embedded database.
Thanks to Audun Halland 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.
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 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.
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
506 pull requests were merged in the last week
Compiler
- create a generic AVR target: avr-none
- new attribute parsing infrastructure
- more sophisticated span trimming for suggestions
Library
- stabilise
os_str_display
,(const_)ptr_sub_ptr
,const_slice_flatten
,file_lock
,inherent_str_constructors
,num_midpoint_signed
,unbounded_shifts
,unsigned_is_multiple_of
, (and const-stabilize)integer_sign_cast
, - simplify
slice::Iter::next
enough that it inlines - reduce
Box::default
stack copies in debug mode - impl
TryFrom<Vec<u8>>
for String - implement
read_buf
for WASI stdin - implement feature
isolate_most_least_significant_one
for integer types - libcore/net:
IpAddr::as_octets()
- added
into_value
function toControlFlow<T, T>
- windows: use existing wrappers in
File::open_native
Rustdoc
Clippy
- new lints:
io_other_error
,owned_cow
.last()
to.next_back()
requires a mutable receivermanual_slice_fill
: do not initialize from the iteratoruseless_asref
: add a check forClone
before suggesting the use of.clone()
- fix
map_entry
FP onstruct
member - fix
too_long_first_doc_paragraph
suggesting wrongly when first line too long - add
todo!
&unimplemented!
to format macros list - extend
obfuscated_if_else
to support{then(), then_some()}.unwrap_or_else()
Rust-Analyzer
- rust-analyzer: feat: calculate drop glue and show it on hover
- rust-analyzer: ignore assists with many results if grouping not supported
- rust-analyzer: include private items in completions for local crates
- rust-analyzer: use correct working directory for non-workspace proc-macro execution
Rust Compiler Performance Triage
Fairly quiet week with the exception of an improvement to the very often used Iter::next function which can now be inlined leading to a myriad of performance improvements.
Triage done by @rylev. Revision range: ce36a966..f5729cfe
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.4% | [0.2%, 1.0%] | 37 |
Regressions ❌ (secondary) |
0.7% | [0.2%, 8.6%] | 54 |
Improvements ✅ (primary) |
-0.5% | [-1.4%, -0.1%] | 88 |
Improvements ✅ (secondary) |
-0.6% | [-2.3%, -0.1%] | 87 |
All ❌✅ (primary) | -0.2% | [-1.4%, 1.0%] | 125 |
1 Regression, 1 Improvement, 7 Mixed; 2 of them in rollups 40 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:
Tracking Issues & PRs
Rust
- Make
ptr_cast_add_auto_to_object lint
into hard error - Tracking Issue for
const_copy_from_slice
- Tracking Issue for
const_char_classify
- Allow
*const W<dyn A> -> *const dyn A ptr
cast - Fix parsing of ranges after unary operators
- Tracking issue for
slice_take
- Tracking Issue for
box_uninit_write
Other Areas
- 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 2025-02-26 - 2025-03-26 🦀
Virtual
- 2025-02-27 | Virtual (US) | Ardan Labs
- 2025-02-27 | Virtual (Berlin, DE) | Rust Berlin
- 2025-02-27 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2025-03-01 | Virtual (Kampala, UG) | Rust Circle Kampala
- 2025-03-04 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-05 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2025-03-06 | Virtual (Nürnberg, DE) | Rust Nurnberg DE
- 2025-03-06 | Virtual (Rotterdam, NL) | Bevy Game Development
- 2025-03-06 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-09 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-09 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 2025-03-11 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-03-11 | Virtual (London, UK) | Women in Rust
- 2025-03-13 | Virtual (Berlin, DE) | Rust Berlin
- 2025-03-18 | Virtual (Washington, DC, US) | Rust DC
- 2025-03-18 | Virtual (Tel Aviv-Yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2025-03-19 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2025-03-25 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-03-25 | Virtual (London, UK) | Women in Rust
Asia
- 2025-03-01 | Bangalore/Bengaluru, IN | Rust Bangalore
- 2025-03-19 | Tel Aviv-Yafo, IL | Rust 🦀 TLV
Europe
- 2025-02-26 | Darmstadt, DE | Rust Rhein Main
- 2025-02-26 | Girona, ES | Rust Girona
- 2025-02-26 | Vienna, AT | Rust Vienna
- 2025-02-27 | Copenhagen, DK | Copenhagen Rust Community
- 2025-02-27 | Oslo, NO | Rust Oslo
- 2025-02-27 | Paris, FR | Rust Paris
- 2025-02-28 | London, UK | London Rust Project Group
- 2025-03-01 | Nürnberg, DE | Rust Nuremberg
- 2025-03-05 | Barcelona, ES | BcnRust
- 2025-03-07 | Prague, CZ | Rust Czech Republic
- 2025-03-12 | Reading, UK | Reading Rust Workshop
- 2025-03-13 | Biel, CH | Rust Bern
- 2025-03-14 | Paris, FR | Rust in Paris
- 2025-03-18 | Basel, CH | Rust Basel
- 2025-03-18 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
North America
- 2025-02-26 | Austin, TX, US | Rust ATX
- 2025-02-27 | Atlanta, GA, US | Rust Atlanta
- 2025-02-27 | Portland, OR, US | PDXRust
- 2025-03-02 | Boston, MA, US | Boston Rust Meetup
- 2025-03-06 | Saint Louis, MO, US | STL Rust
- 2025-03-10 | Boston, MA, US | Boston Rust Meetup
- 2025-03-18 | San Francisco, CA, US | San Francisco Rust Study Group
- 2025-03-18 | Spokane, WA, US | Spokane Rust
- 2025-03-20 | Redmond, WA, US | Seattle Rust User Group
- 2025-03-26 | Austin, TX, US | Rust ATX
Oceania
- 2025-02-27 | Auckland, NZ | Rust AKL
- 2025-03-04 | Perth, WA, AU | Rust Perth Meetup Group
- 2025-03-11 | Christchurch, NZ | Christchurch Rust Meetup Group
South America:
- 2025-03-15 | São Paulo, BR | Rust São Paulo Meetup
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
Rust isn't a "silver bullet" that will solve all of our problems, but it sure will help in a huge number of places, so for new stuff going forward, why wouldn't we want that?
– Greg Kroah-Hartmann on the Linux Kernel Mailing List
Thanks to Krishna Sundarram 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