31 Dec 2025
Planet Mozilla
This Week In Rust: This Week in Rust 632
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
Project/Tooling Updates
- reqwest v0.13 - rustls by default
- rama 0.3.0-alpha.4 is released - modular service framework to move and transform network packets
- Ratatui 0.30.0 is released! - a Rust library for cooking up terminal user interfaces
Observations/Thoughts
- Four Years of Rust: An Odyssey of Failures, Achievements, and Hard Lessons
- Simple Bidirectional Type Inference
- serde's borrowing can be treacherous
- Garbage collection in Rust got a little better
- [audio] Netstack.FM episode 20 - Netstack.FM New Year Special, 2025 Wrap-Up
Rust Walkthroughs
- Why is calling my asm function from Rust slower than calling it from C?
- Rust Errors Without Dependencies
- [video] Building your first APP using the new Hotaru Web Framework!
Miscellaneous
- [audio] 2025 Holiday Special - Rust in Production Podcast
- Investigating and fixing a nasty clone bug
Crate of the Week
This week's crate is wgsl-bindgen, a binding generator for WGSL, the WebGPU shading language, to be used with wgpu.
Thanks to Artem Borisovskiy 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.
- Rustup 1.29.0 beta: Call for Testing!
-
Testing steps: See "How to Test" section from above link.
-
No calls for testing were issued this week by Rust, Cargo 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.
- Spindalis - Create an AST parser
- Spindalis - Add procedural macro for definite integral
- Spindalis - Add a function and macro that can expand polynomials
- Spindalis - Add display trait to functions in spindalis core
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 2026-01-18 | 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
297 pull requests were merged in the last week
Compiler
- recursive delegation improvements
- miri: fix ICE for particular data race situations
- miri: show a warning when combing native-lib mode and many-seeds
- miri: tree Borrows: improve protector end access child skipping
Library
- add
MaybeDanglingtocore - alloc: specialize
String::extendfor slices of str - implement
Duration::div_duration_{floor,ceil} - implement flatten for
Option<&Option<T>>andOption<&mut Option<T>> - optimized implementation for
uN::{gather,scatter}_bits - rewrite
String::replace_range - stabilize
lazy_get
Cargo
index: Stabilize pubtimereport: new commandcargo report sessionsreport: support --manifest-path incargo report timingsresolver: List features when no close matchtoml: TOML 1.1 parse supportvendor: recursively filter git files in subdirectoriesvendor: unpack from local-registry cache pathbuild-rs: Reduce from 'build' to 'check' where possible- experiment: render timing pipeline in SVG
- patch: Display where the patch was defined in patch-related error messages
Rustdoc
- if line number setting is disabled, do not make line numbers take space
- fix copy code example with line numbers
- fix duplicate Re-exports sections
- fix incorrect type filter name in help popup
Clippy
- fix
assertions_on_constantsfalse positive when there is non-constant value in the condition expr - fix
double_parensfalse positive on macro repetition patterns - fix
obfuscated_if_elsewrongly unmangled macros - fix
result_large_errfalse negative on closures - preserve explicit lifetime information when removing
mut - various fixes for handling of macros
Rust-Analyzer
- add bidirectional messaging proc-macro-srv prototype
- add macro segment completion
- implement configuration to change sub command for test, bench and doctest
- provide a setting to disable showing rename conflicts
- stabilize type mismatch diagnostic 🎉
- indent for
convert_to_guarded_return - fix LSP configuration request handling
- fix parsing of
format_args!("...", keyword=...) - fix type inference when hovering on
_ - reenable fixpoint variance
- do not really expand builtin derives, instead treat them specifically
- pre-allocate some buffers in parsing
- reduce channel lock contention for drop-threads
- prompt the user in VSCode to add the rust-anaylzer componenet to the toolchain file
Rust Compiler Performance Triage
Not a lot of changes this week. Overall result is positive, largely thanks to https://github.com/rust-lang/rust/pull/142881, which makes computing an expensive data structure for JumpThreading MIR optimization lazy.
Triage done by @panstromek. Revision range: e1212ea7..112a2742
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.5% | [0.1%, 1.7%] | 11 |
| Regressions ❌ (secondary) |
0.2% | [0.1%, 0.5%] | 6 |
| Improvements ✅ (primary) |
-0.5% | [-1.3%, -0.1%] | 74 |
| Improvements ✅ (secondary) |
-0.6% | [-1.8%, -0.2%] | 71 |
| All ❌✅ (primary) | -0.4% | [-1.3%, 1.7%] | 85 |
2 Regressions, 0 Improvements, 3 Mixed; 1 of them in rollups 37 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
- Proposal for a dedicated test suite for the parallel frontend
- Promote tier 3 riscv32 ESP-IDF targets to tier 2
- Proposal for Adapt Stack Protector for Rust
- Give integer literals a sign instead of relying on negation expressions
- Also enable ICE file dumps on stable
- New Tier-3 target proposal:
loongarch64-linux-android
No Items entered Final Comment Period this week for Cargo, Rust, Rust RFCs, Leadership Council, 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
Tracking Issues & PRs
New and Updated RFCs
Upcoming Events
Rusty Events between 2025-12-31 - 2026-01-28 🦀
Virtual
- 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
- 2026-01-13 | Virtual | libp2p Events
- 2026-01-13 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2026-01-14 | Virtual (Girona, ES) | Rust Girona
- 2026-01-15 | Virtual (Berlin, DE) | Rust Berlin
- 2026-01-20 | Virtual (Washington, DC, US) | Rust DC
- 2026-01-21 | Virtual (Girona, ES) | Rust Girona
- 2026-01-21 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2026-01-27 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-01-28 | Virtual (Girona, ES) | Rust Girona
Asia
- 2026-01-07 | Tel Aviv-yafo, IL | Rust 🦀 TLV
- 2026-01-08 | Seoul, KR | Seoul Rust (Programming Language) Meetup
- 2026-01-17 | Delhi, IN | Rust Delhi
Europe
- 2026-01-07 | Amsterdam, NL | Rust Developers Amsterdam Group
- 2026-01-07 | Girona, ES | Rust Girona
- 2026-01-08 | Geneva, CH | Post Tenebras Lab
- 2026-01-14 | Reading, UK | Reading Rust Workshop
- 2026-01-20 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
- 2026-01-20 | Paris, FR | Rust Paris
North America
- 2026-01-01 | Saint Louis, MO, US | STL Rust
- 2026-01-03 | Boston, MA, US | Boston Rust Meetup
- 2026-01-08 | Lehi, UT, US | Utah Rust
- 2026-01-08 | Mountain View, CA, US | Hacker Dojo
- 2026-01-10 | Boston, MA, US | Boston Rust Meetup
- 2026-01-13 | New York, NY, US | Rust NYC
- 2026-01-13 | Spokane, WA, US | Spokane Rust
- 2026-01-15 | Seattle, WA, US | Seattle Rust User Group
- 2026-01-17 | Boston, MA, US | Boston Rust Meetup
- 2026-01-17 | Herndon, VA, US | NoVaLUG
- 2026-01-20 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-01-21 | Austin, TX, US | Rust ATX
- 2026-01-22 | Boston, MA, US | Boston Rust Meetup
- 2026-01-24 | Boston, MA, US | Boston Rust Meetup
- 2026-01-28 | Los Angeles, CA, US | Rust Los Angeles
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
what even is time?!?
Thanks to llogiq 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
31 Dec 2025 5:00am GMT
30 Dec 2025
Planet Mozilla
William Durand: My process for pitching projects as an engineer
This winter break has finally given me the mental space I needed, so I wrote another work-related article this month1, yay! This time, I'll focus on my personal process for pitching projects as an engineer.
Ever had a great idea at work but struggled to get it on the roadmap? As an engineer in an environment where product work is primarily driven by product managers, I've learned how to turn ideas into team priorities. The good thing is: there is no need to be a lead engineer for that!
From idea to proposal
Every project starts with an idea aimed at solving a specific problem2. Focusing on small, self-contained problems is much easier than tackling something that spans the entire product or system. Addressing larger problems becomes easier with experience and practice.
I mainly do some research and talk to people. Sometimes, as an engineer who enjoys coding, I might also do some initial "hacking" to explore the idea and uncover potential issues. Though not strictly necessary, I find this helpful for uncovering technical blockers (I also love making cool demos 🙈).
The goal of this phase is to move the idea from a vague notion to a solid, credible solution for a well-defined problem. From experience, neglecting this step often leads to a half-baked proposal that lacks clarity and fails to gain traction.
Gaining initial buy-in
My strategy for socializing and building support for an idea usually involves three groups: my peers, my Product Manager (PM), and my manager. I typically move from peers up to my manager, adjusting my approach based on the feedback I receive along the way. This iterative feedback process is essential to me. It stress-tests the idea and maximizes my chances of success, even if the initial concept requires significant revision.
I aim to convince one or two peers. The burden of proof is entirely on me to sell the idea, which is why the previous step is so important. When the idea moves to the broader team or to the PM, having a peer vouch for its value shifts the dynamic from one person's suggestion to a team-vetted proposal.
Once I have peer buy-in, I start a conversation with the PM. Product Managers are focused on business value, not engineering details. They usually need answers to the following questions:
- What is the value added?
- Why should this be prioritized now?
- What is the estimated time to production?
I've found that a concise document3 outlining the final state and answering these specific questions works best for engaging the PM. This is convenient because it's the same format I use when approaching my peers, so I usually keep the same living document.
Securing manager approval
Once I have my peers and product manager on board, I approach my manager to discuss planning. In collaboration with the PM, my manager ultimately owns the team's roadmap.
This isn't the first time my manager hears about the idea, though. I maintain a proactive communication strategy, ensuring I give them a heads-up about developing ideas and significant technical explorations early. This prevents my manager from being caught off guard or, worse, hearing about a developing initiative secondhand from other stakeholders. It also allows them to provide early, high-level strategic guidance that might steer the proposal in a more productive direction before significant effort is invested.
The aim is to engage them at the right time: early for awareness and strategic input, and formally when a well-supported, high-quality proposal is ready for definitive planning and commitment.
Final thoughts
This is my approach to increase the chances of a project to make it onto our roadmap. Do note that this approach won't always succeed. Ideas are sometimes rejected, and that's okay.
With that said, I'd encourage interested folks to come up with what works for them, but that's probably a safe start. If you're one of them, remember that likely no one will care more than you do, so don't drop the ball!
-
The previous article covered some challenges as a tech lead. ↩
-
A few concrete examples in no particular order: porting a feature to a different platform, sunsetting a service, building an in-house feature to replace a third-party application. ↩
-
Such a document is often referred to as a "1-pager" even if its length can exceed a single page. ↩
30 Dec 2025 12:00am GMT
24 Dec 2025
Planet Mozilla
This Week In Rust: This Week in Rust 631
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
- What do people love about Rust?
- Please submit 2026 Project goal proposals
- December 2025 Project Director Update
- Program management update - End of 2025
- Rustup 1.29.0 beta: Call for Testing!
Newsletters
Project/Tooling Updates
- What's "new" in Miri (and also, there's a Miri paper!)
- cargo-coupling: Visualizing Coupling in Rust Projects
- Announcing Asterinas 0.17.0
- Tuitar - A portable guitar training tool & DIY kit
- Gitoxide in December
- Announcing GotaTun, the future of WireGuard at Mullvad VPN
- wgpu v28.0.0 - Mesh Shaders, Immediates, and More!
- rustc_codegen_gcc: Progress Report #39
Observations/Thoughts
- Syntactic musings on the fallibility effect
- Rust's Block Pattern
- [audio] Netstack.FM episode 19 - Firezone and Zero-Trust Network Security with Thomas Eizinger
Rust Walkthroughs
- Rust Unit Testing: Basic HTTP Server
- Async Rust Bluetooth Plumbing: Where the Throughput Goes
- [series] Part 2: Tensor Operations, Building an LLM from Scratch in Rust
Crate of the Week
This week's crate is arcshift, an Arc replacement for read-heavy workloads that supports lock-free atomic replacement.
Thanks to rustkins 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, 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 2026-01-18 | 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
475 pull requests were merged in the last week
Compiler
- add
target_feature = "gc"for Wasm - better closure requirement propagation
- correctly encode doc attribute metadata
- don't treat asserts as a call in cross-crate inlining
- improve filenames encoding and misc
- make closure capturing have consistent and correct behaviour around patterns
- support recursive delegation
Library
- add
try_as_dynandtry_as_dyn_mut - add const default for OnceCell and OnceLock
- expand
str_as_strto more types - make
const BorrowMutrequireconst Borrowand makeconst Fnrequireconst FnMut - hashbrown: add
hash_map::{OccupiedEntry::into_entry,VacantEntryRef::insert_entry_with_key}, makeEntryRefuseToOwnedagain - hashbrown: add
hash_table::OccupiedEntry::replace_entry_withto mirror HashMap API - hashbrown: add
hash_table::UnsafeIter,iter()method to various iterators
Rustdoc
- Add missing close tags in extern crate reexports
- Fix invalid handling of field followed by negated macro call
- generate macro expansion for rust compiler crates docs
- handle macro expansions in types
Clippy
transmuting_null: Check const integer casts- allow multiline suggestions in
map-unwrap-or - do not attempt to use
nthwith non-usize argument - don't emit
collapsible_else_iflint when all arms contain onlyif {} else {}expressions - fix
cmp_nullmissing parens in the example - fix
empty_enum_variants_with_bracketsmisses removing brackets in patterns - fix
if_then_some_else_nonesuggests wrongly when then ends with comment - fix
needless_type_castsuggesting invalid code for non-literal initializers - fix
println_empty_stringsuggestion caused error - fix
use_selffalse positive on type in const generics - fix an incorrect error message regarding the size of
usizeandisizeincast_precision_loss - move
collapsible_else_iftopedantic - new lint -
same_length_and_capacity
Rust-Analyzer
- add 'Use of AI tools' section to CONTRIBUTING.md
- add BreakExpr completion suggest
- add an lsp extension to get failed obligations for a given function
- add default varname for TryEnum postfix completion
- add guess braces doc
T![]forT_ - add ide-assist:
add_explicit_method_call_deref - complete reference
&T→&&T - introduce
crate_attrsfield inrust-project.json - pretty print attributes up to
cfg(false) - fix applicable on non naked if for
move_guardassist - fix guess renamed macro braces
- fix indent for
convert_iter_for_each_to_for - fix indent for
merge_nested_if - fix match arm nested body invalid expected type
- fix nested if-let for
merge_nested_if - fix flycheck generations not being synced for multiple workspaces
- more perf improvements, made possible after non-Salsa interneds
- non-Salsa-interned solver types - with GC for them
- remove conflicting advice
- support undotted-self for
thisparam closure
Rust Compiler Performance Triage
Very quiet week, with essentially no change in performance.
Triage done by @simulacrum. Revision range: 21ff67df..e1212ea7
1 Regression, 1 Improvement, 3 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: * 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
- Raise travel grant limit to $100,000 for 2026
- Fund program management program for 2026
- Raise automatic travel grant to $2000
No Items entered Final Comment Period this week for Rust RFCs, 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-24 - 2026-01-21 🦀
Virtual
- 2025-12-30 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 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
- 2026-01-13 | Virtual | libp2p Events
- 2026-01-15 | Virtual (Berlin, DE) | Rust Berlin
- 2026-01-20 | Virtual (Washington, DC, US) | Rust DC
- 2026-01-21 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Asia
- 2026-01-07 | Tel Aviv-yafo, IL | Rust 🦀 TLV
Europe
- 2026-01-07 | Amsterdam, NL | Rust Developers Amsterdam Group
- 2026-01-07 | Girona, ES | Rust Girona
- 2026-01-08 | Geneva, CH | Post Tenebras Lab
- 2026-01-14 | Reading, UK | Reading Rust Workshop
- 2026-01-20 | Leipzig, SN, DE | Rust - Modern Systems Programming in Leipzig
- 2026-01-20 | Paris, FR | Rust Paris
North America
- 2025-12-27 | Boston, MA, US | Boston Rust Meetup
- 2026-01-03 | Boston, MA, US | Boston Rust Meetup
- 2026-01-08 | Mountain View, CA, US | Hacker Dojo
- 2026-01-10 | Boston, MA, US | Boston Rust Meetup
- 2026-01-15 | Seattle, WA, US | Seattle Rust User Group
- 2026-01-17 | Boston, MA, US | Boston Rust Meetup
- 2026-01-20 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-01-21 | Austin, TX, US | Rust ATX
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
they should just rename
unsafetoCso people can shut up
- /u/thisismyfavoritename on /r/rust
Thanks to Brian Kung 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
24 Dec 2025 5:00am GMT