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
Project/Tooling Updates
- How we made SeaORM synchronous
- Building Slatron: The Digital TV Scheduling and Automation System
- The state of the kernel Rust experiment
Observations/Thoughts
- Secure your Rust projects and improve the developer experience with Dev Containers
- Miri: Practical Undefined Behavior Detection for Rust
- Finding Alignment by Visualizing Music With Rust
- Rust GCC backend: Why and how
Rust Walkthroughs
- Rust Unit Testing: File writing
- Stop Losing Intent: Absent, Null, and Value in Rust
- Getting started: How to Learn Embedded Rust for Beginners
- Writing a mockable Filesystem trait in Rust without RefCell
- [series] The Impatient Programmer’s Guide to Bevy and Rust: Chapter 4 - Let There Be Collisions
- Building Secure OTA Updates for ESP32 Over BLE with Rust
- Positional Memoization via Proc Macros in a Rust UI Framework
- hotpath-rs - CPU time vs wall-clock time: profiling async Rust
Miscellaneous
Crate of the Week
This week's crate is logos, a modern lexer generator.
Thanks to Sam O'Brien for the (partial 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, 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.
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 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.
- RustWeek 2026 | CFP closes 2025-12-31 | Utrecht, The Netherlands | 2026-05-19 - 2026-05-20
- RustConf 2026 | CFP closes 2026-02-16 | Montreal, Quebec, Canada | 2026-09-08 - 2026-09-10
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
482 pull requests were merged in the last week
Compiler
rustc_scalable_vector(N)- experimentally add heterogeneous
tryblocks - externally implementable items
- forbid freely casting lifetime bounds of dyn-types
- inherit attributes in delegation
- only resolve main in bin crates
- overhaul filename handling for cross-compiler consistency
- simplify how inline asm handles
MaybeUninit
Library
- add
SystemTime::{MIN,MAX} - add
core::hint::prefetch_{read, write}_{data, instruction} - constify
DropGuard::dismissand trait impls - fix vec iter zst alignment
- stabilize
const_mul_add
Cargo
feat(log): make timing messages ready for HTML replayfeat(report): cargo report timings HTML replay- new: Improve quality of package name error messages
- package: Don't verify registry for --list
fix(timing): more self-contained timing/log datatest(lint): redact more due to line got omitted- cache submodule into git db
- downgrade curl-sys to 0.4.83
- feat: stabilize
-Zconfig-include - fixed incorrect locking logic when artifact-dir == build-dir
- test: use a larger default term width
Clippy
format_push_string: give a (possibly incomplete) suggestionmanual_saturating_arithmetic: lintx.checked_sub(y).unwrap_or_default()transmute_ptr_to_ref: Handle a pointer wrapped in astructunnecessary_fold: lint onfolds withAdd::add/Mul::mulmatch_like_matches_macro: fix false positive with guards containingif let- add
needless_type_castlint - add iterator reduction coverage to
never_loop - count unsafe operations and macro calls once towards the innermost unsafe block
- do not look for disallowed methods inside desugared code
- fix
branches-sharing-codesuggests wrongly onconstandstatic - fix
clippy::ref_as_ptrfor non-temporary references in let/const - fix
if_not_elsewrong unmangled macros - fix
if_then_some_else_nonefalse positive when encounteringawaitcodes - fix
map_entrysuggests wrongly for insert with cfg-ed out code - fix
match_like_matches_macrowrongly unmangled macros - fix
set-contains-or-insertfalse positive when set is mutated beforeinsert - fix
unchecked_time_subtractionfalse negative onOps::submethod call
Rust-Analyzer
- fix "Invariant violation: file emitted multiple times" when doing
scip . - fix
bind_unused_paramapplicable on closure - fix assist
and→and_thenparameter - fix complete reference for
&mut ty→&ty - fix complete unit return semicolon in arg-list
- fix expected type no strip deref
- fix indent for
toggle_ignore - fix invalid logic op for
replace_let_with_if_let - fix loses label for
convert_for_to_while_let - fix not applicable fn in closure for
add_return_type #[rustc_deprecated_safe_2024]can also come as#[rustc_deprecated_safe_2024(audit_that = "reason")]is_transmutablealways panicking- fix a panic in
ast::TypeBound::kind() - fix method resolution for incoherent impls when there are two sysroots in the crate graph
- implementation of
locals_usedin HIR level - lsp: handle dynamic registration for didSave
- prefix json target file with workspace root for sysroot metadata
- respect rustc's lint attribute application order
- show parameter hint for missing arguments
- support
#[feature(associated_type_defaults)] - support dyn compatibility for old toolchains without
MetaSized - support the new lowering of
format_args!() - use
cmark_with_optionsto write shortcuts links to the output - include operator overload occurrences in SCIP index
- reorder
add_return_typeassist
Rust Compiler Performance Triage
This week we saw several regressions, partly from the compiler doing more work. The remaining regressions are being investigated.
Triage done by @kobzol. Revision range: 55495234..21ff67df
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.5% | [0.1%, 5.1%] | 40 |
| Regressions ❌ (secondary) |
0.8% | [0.0%, 3.0%] | 63 |
| Improvements ✅ (primary) |
-0.7% | [-1.5%, -0.1%] | 35 |
| Improvements ✅ (secondary) |
-1.0% | [-7.4%, -0.0%] | 73 |
| All ❌✅ (primary) | -0.1% | [-1.5%, 5.1%] | 75 |
3 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups 36 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: * Adding a crates.io Security tab
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
- Don't strip shebang in expr-ctxt
include!(…) - Policy on the use of
rustc_legacy_const_genericsin stdarch - Tracking Issue for
atomic_try_update
Rust RFCs
Cargo
Leadership Council
No Items entered Final Comment Period this week for Compiler Team (MCPs only), 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-12-17 - 2026-01-14 🦀
Virtual
- 2025-12-17 | Virtual (Girona, ES) | Rust Girona
- 2025-12-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-12-18 | Virtual (Berlin, DE) | Rust Berlin
- 2025-12-23 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2025-12-25 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-01-01 | Virtual (Berlin, DE) | Rust Berlin
- 2026-01-03 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-01-07 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-01-08 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2026-01-08 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-01-13 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
Asia
- 2025-12-20 | Bangalore, IN | Rust Bangalore
- 2026-01-06 | Tel Aviv-yafo, IL | Rust 🦀 TLV
Europe
- 2025-12-18 | London, UK | London Rust Project Group
- 2025-12-19 | Lyon, FR | Rust Lyon
- 2026-01-07 | Girona, ES | Rust Girona
- 2026-01-08 | Geneva, CH | Post Tenebras Lab
- 2026-01-14 | Reading, UK | Reading Rust Workshop
North America
- 2025-12-17 | Austin, TX, US | Rust ATX
- 2025-12-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2025-12-17 | Spokane, WA, US | Spokane Rust
- 2025-12-20 | Boston, MA, US | Boston Rust Meetup
- 2025-12-25 | Mountain View, CA, US | Hacker Dojo
- 2026-01-08 | Mountain View, CA, US | Hacker Dojo
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
I allow my code to be used for training AI on GitHub. Not because I fear AI taking our jobs—but because I’m confident my code will slow it down enough to save us all.
Thanks to Moy2010 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