Newshot
Account

This Week in Rust 677

Summary

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 Google Summer of Code 2026 results Newsletters The Embedded Rustacean Issue #84 Observations/Thoughts Securing Rust's supply chain with an extended standard library Run Linux applications in hypervisor-isolated micro-VMs with Hyperlight [series] Apache Iggy's migration journey to clustering powered by Viewstamped Replication (part 3) I snuck into the Rust…

Original text(via This Week in Rust)

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

  • Google Summer of Code 2026 results

Newsletters

  • The Embedded Rustacean Issue #84

Observations/Thoughts

  • Securing Rust's supply chain with an extended standard library
  • Run Linux applications in hypervisor-isolated micro-VMs with Hyperlight
  • [series] Apache Iggy's migration journey to clustering powered by Viewstamped Replication (part 3)
  • I snuck into the Rust Foundation's secret meeting; here's what you need to know.
  • Breaking a Rust actor cluster on purpose, and what it taught us
  • Catching Panics in Production
  • Skipping Cloud Vendor SDKs: How ScopeDB Accesses Object Storage with Apache OpenDAL
  • Bringing Rust into Ubuntu at Scale: Interview with Jon Seager
  • Rust Benchmarking: How to Detect Performance Regressions in CI
  • [video] Code Matters: Reflections on Rust in the LLM Age — Bryan Cantrill | Rust NYC
  • A Critique of GPUI
  • Memory Safety Bugs in Rust Standard Library
  • Rust Declarative Macros: Organization, Scoping, and Common Use-Cases

Rust Walkthroughs

  • RSPHP Part 1: Bindings
  • Pointer Provenance in Rust vs C++: Pointers Are Not Just Glorified Ints
  • Tokio, channels and poisoned locks
  • [video] RustCurious lesson 12: Lifetimes

Crate of the Week

This week's crate is iddqd, a library of maps where keys are borrowed from values.

Thanks to Miro 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.

RFCs

Rust

Rustup

If you are a feature implementer and would like your RFC to appear on the above list, add the new 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.

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.

  • Klicky - Cover silence and signed sample boundaries in audio-normalization tests
  • Octomind - parallel = "true" in a workflow step fails with "missing field role"
  • Octomind - schedule accepts when="13am" and fires at 13:00
  • Octomind - octomind configure saves a pasted API key with spaces around it
  • Umbera - Fuzz target for pdf_strip_metadata
  • Umbera - Add NIST ACVP known-answer tests for ML-KEM-1024
  • sysknife - publish-mcp.yml runs an unpinned mcp-publisher with id-token: write, and pinned-dependencies.test.sh never reads that file
  • sysknife - MCP plan and execute results do not name the host they came from
  • sysknife - dev-stories.sh runs the stories against the sysknife on PATH, not the binary it builds
  • Elpis - Add DeepSeek, Mistral or Groq as a built-in provider
  • Elpis - Publish and maintain the elpis-bin package on the AUR

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.

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

659 pull requests were merged in the last week

Compiler

  • add enclosing item context when pointing at FnMut bound
  • add let_underscore_drop_guard lint
  • don't emit no-op &T → &T reborrows
  • lint: do not emit unreachable_code on become with diverging callee
  • make inline attributes apply to the generated poll in async fn
  • next solver unsize coercion diagnostics
  • reborrow: Allow multiple lifetimes
  • restore the fast path of QueryTypeOp
  • reuse CanonicalVarKinds if no new variables were added
  • rustc_builtin_macros cleanup, part 9
  • skip reachable_set calculation during metadata encoding when unused
  • support mutable captures in move expressions

Library

  • Move trait feature gate
  • String::retain: convert only the untouched UTF-8 tail
  • add BTreeMap::allocator and BTreeSet::allocator
  • add core::arch::{x86, x86_64}::x87_f80
  • add Discriminant::ord
  • add LinkedList::allocator
  • drop array elements in order after a partial move
  • expose str::split_at_[mut_]unchecked and OsStr::split_at_unchecked
  • implement read_le/read_be for f16 and f128
  • implement bit and set_bit for integral types
  • optimize memset/memcpy size

Cargo

  • config: Expose config merging, reading, and schemas in a crate
  • schema: Expose SBOM types
  • doc: do not suggest cargo fix for rustdoc warnings
  • profile: preserve inherited strip
  • registry: handle HTTP 410/451 for missing crates
  • schema: Improve deserialization errors and performance
  • parse: Trade remote manifest diagnostic quality for performance
  • clean /out dir before compilation
  • dont strip if any transtive dep has debuginfo on
  • strip host deps whose debuginfo was weakened already

Rustdoc

  • Avoid re-HIR-ty-lowering tys & const args where possible
  • frontend: Properly clear search state when sidebar link is clicked
  • Allow . to be used the same as :: in the search
  • Render Deref methods on aliased items
  • fix invalid clean of paths when they end with self
  • improve performance by skipping unneeded intermediate JSON serializations
  • make implementors collapseable if there is more than one line of docs
  • suggest reference definitions for unresolved links

Rustfmt

  • allow reading args from @path
  • fix unclosed trailing block comments with wrap_comments=true or normalize_comments=true
  • formatting empty where clauses when there are return types
  • remove each comment's leading whitespace in comment::rewrite_comment

Clippy

  • while_let_loop: lint only wildcard break patterns and special cases
  • add is_lint_allowed to future_not_send
  • extend assert_is_empty to support BinaryHeap
  • extend unnecessary_to_owned to cover vec.contains(&str.to_string())
  • fix collapsible_match suggestion producing non-exhaustive match
  • fix false positives on duplicated_attributes
  • improve future_not_send for next-solver
  • rename large_stack_frames and move it to suspicious

Rust-Analyzer

  • disallow ZSTs in ThinMap
  • complete trait dyn prefix in type location
  • offer on wildcard pattern for destructure_struct_binding
  • add macOS, iOS, Android and musl to cfg completion
  • add support for final associated functions
  • do not complete dyn Trait in sized location
  • do not suggest unreachable path of struct lit
  • don't complete transparent after repr(align(...)) or repr(packed)
  • emit E0158 and E0532 for invalid value items in path patterns
  • emit assoc item bound only with generics on builtin derive
  • ensure r-a matches rustc coercion logic
  • fix where clause position for assoc-type
  • i28 should be i128 in completion
  • ide-diagnostics: emit error E0220 for unresolved associated types
  • match rustc-unicode locations in the rustc problem matcher
  • nested cast before < add parens for apply_demorgan
  • offer gen doc example on re-exported item
  • out-of-bounds crash due to copypasta
  • panic on for<'a> on types using #[derive()]
  • implement hiding implicit drop hints for types without drop glue
  • perf: micro-optimizations for lang items

Rust Compiler Performance Triage

A quiet week performance-wise. The only notable change was a major regression in #165335, which might get reverted.

Triage done by @Kobzol. Revision range: 4c46afa6..54d0b7ed

(instructions:u)meanrangecount
Regressions ❌ (primary)1.0%[0.2%, 3.7%]163
Regressions ❌ (secondary)1.2%[0.0%, 4.6%]159
Improvements ✅ (primary)-2.2%[-3.9%, -0.3%]8
Improvements ✅ (secondary)-0.7%[-1.6%, -0.2%]10
All ❌✅ (primary)0.8%[-3.9%, 3.7%]171

6 Regressions, 5 Improvements, 3 Mixed; 6 of them in rollups 189 artifact comparisons made in total

Full report here.

Approved RFCs

Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:

  • RFC: Associated const underscore

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

  • lexer: Update to Unicode 18
  • s390x: replace -Ctarget-feature=+backchain with -Cforce-frame-pointers
  • Stabilize int_from_ascii
  • RFC for limited crates.io self-service version deletion
  • [disposition: close] Deprecate std::env::{vars, args}
  • perf(compile)!: Switch dev profile to debug=lines-and-tables-only
  • fix(trim-paths): sanitize absolute source paths in fingerprint
  • T-mods 2026 budget request

No Items entered Final Comment Period this week for Compiler Team, 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

  • No New or Updated RFCs were created this week.

Upcoming Events

Rusty Events between 2026-11-11 - 2026-12-09 🦀

Virtual

  • 2026-11-12 | Virtual (Nürnberg, DE) | Rust Nuremberg Rust Nürnberg online
  • Rust Nürnberg online
  • 2026-11-15 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup Rust Deep Learning: Third Sunday
  • Rust Deep Learning: Third Sunday
  • 2026-11-17 | Virtual | Rust 🦀 Maven Miscompilation in Rust 1.97
  • Miscompilation in Rust 1.97
  • 2026-11-17 | Virtual (London, UK) | Women in Rust Lunch & Learn: The Harness Wore a Trenchcoat - Building a Rust MCP Server
  • Lunch & Learn: The Harness Wore a Trenchcoat - Building a Rust MCP Server
  • 2026-11-17 | Virtual (Washington, DC, US) | Rust DC Mid-month Rustful
  • Mid-month Rustful
  • 2026-11-18 | Hybrid (Vancouver, CA) | Vancouver Rust Writing a firmware for Xteink ereader in Rust
  • Writing a firmware for Xteink ereader in Rust
  • 2026-11-19 | Virtual (Berlin, DE) | Rust Berlin Rust Hack and Learn
  • Rust Hack and Learn
  • 2026-11-24 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup Fourth Tuesday Rust Bookclub
  • Fourth Tuesday Rust Bookclub
  • 2026-11-26 | Virtual | betterCode() Rust betterCode() Rust 2026
  • betterCode() Rust 2026
  • 2026-12-01 | Virtual | Rust 🦀 Maven Cursed Rust
  • 2026-12-01 | Virtual (London, UK) | Women in Rust Christmas Coding Challenge - Kick Off!
  • Christmas Coding Challenge - Kick Off!
  • 2026-12-02 | Virtual (Indianapolis, IN, US) | Indy Rust Indy.rs - with Social Distancing
  • Indy.rs - with Social Distancing
  • 2026-12-03 | Virtual (Berlin, DE) | Rust Berlin Rust Hack and Learn
  • Rust Hack and Learn
  • 2026-12-04 | Hybrid (Moscow, RU) | RustCon RU RustCon 2026
  • RustCon 2026
  • 2026-12-06 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup Rust Deep Learning: First Sunday
  • Rust Deep Learning: First Sunday
  • 2026-12-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup Second Tuesday
  • Second Tuesday
  • 2026-12-08 | Virtual (London, UK) | Women in Rust 👋 Community Catch Up
  • 👋 Community Catch Up

Asia

  • 2026-11-14 | Bengaluru, IN | Rust Bangalore November 2026 Rustacean Meetup
  • November 2026 Rustacean Meetup

Europe

  • 2026-11-12 | Frankfurt, DE | Rust Rhein-Main Debugging in Rust
  • Debugging in Rust
  • 2026-11-12 | Geneva, CH | Rust Geneva Rust Meetup Geneva
  • Rust Meetup Geneva
  • 2026-11-12 | Milano, MI, IT | Rust Language Milan From Curiosity to Capability: Build Your Own Device Swarm
  • From Curiosity to Capability: Build Your Own Device Swarm
  • 2026-11-17 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig Everlock: Everything Is Git, Protocols Are Just Adapters
  • Everlock: Everything Is Git, Protocols Are Just Adapters
  • 2026-11-19 | Aarhus, DK | Rust Aarhus Talk Night at EIVA
  • Talk Night at EIVA
  • 2026-11-19 | Bergen, NO | Rust Bergen Rust: FFI with C++, and Intro to Async
  • Rust: FFI with C++, and Intro to Async
  • 2026-11-20 - 2026-11-21 | Augsburg, DE | Rust Meetup Augsburg Embedded Rust mit Embassy - Workshop und Projekttag
  • Embedded Rust mit Embassy - Workshop und Projekttag
  • 2026-11-24 | Basel, CH | Rust Basel Rust Meetup #17 @ ERNI
  • Rust Meetup #17 @ ERNI
  • 2026-11-25 | Amsterdam, NL | Rust Developers Amsterdam Group Rust Meetup @ Reclamefolder
  • Rust Meetup @ Reclamefolder
  • 2026-11-26 | Copenhagen, DK | Copenhagen Rust Community Rust meetup #73 sponsored by Adapt!
  • Rust meetup #73 sponsored by Adapt!
  • 2026-11-26 | London, UK | Rust London User Group Rust London x Zed
  • Rust London x Zed
  • 2026-11-26 | Manchester, UK | Rust Manchester Rust Manchester November Code Night
  • Rust Manchester November Code Night
  • 2026-11-26 | Stockholm, SE | Stockholm Rust Rust Meetup @Lovable
  • Rust Meetup @Lovable
  • 2026-12-01 | Paris, FR | Rust Paris Rust meetup #90
  • Rust meetup #90
  • 2026-12-02 | Frankfurt, DE | Rust Rhein-Main From Curiosity to Capability: Build Your Own Device Swarm
  • From Curiosity to Capability: Build Your Own Device Swarm
  • 2026-12-04 | Hybrid (Moscow, RU) | RustCon RU RustCon 2026
  • RustCon 2026

North America

  • 2026-11-12 | Lehi, UT, US | Utah Rust Rust Game Jam
  • Rust Game Jam
  • 2026-11-12 | San Diego, CA, US | San Diego Rust San Diego Rust November Meetup - Back in person!
  • San Diego Rust November Meetup - Back in person!
  • 2026-11-14 | Boston, MA, US | Boston Rust Meetup MIT Rust Lunch, Nov 14
  • MIT Rust Lunch, Nov 14
  • 2026-11-17 | Los Angeles, CA, US | Rust Los Angeles Rust LA November w/ Hadrian!
  • Rust LA November w/ Hadrian!
  • 2026-11-17 | San Francisco, CA, US | San Francisco Rust Study Group Rust Hacking in Person
  • Rust Hacking in Person
  • 2026-11-18 | Hybrid (Vancouver, CA) | Vancouver Rust Writing a firmware for Xteink ereader in Rust
  • Writing a firmware for Xteink ereader in Rust
  • 2026-11-18 | San Francisco, CA, US) | Bay Area Rust Bay Area Rust - Social Night
  • Bay Area Rust - Social Night
  • 2026-11-21 | Boston, MA, US | Boston Rust Meetup Winter Hill Rust Lunch, Nov 21
  • Winter Hill Rust Lunch, Nov 21
  • 2026-11-28 | Boston, MA, US | Boston Rust Meetup South Station Rust Lunch, Nov 28
  • South Station Rust Lunch, Nov 28
  • 2026-12-04 | New York, NY, US | Rust NYC Rust NYC: The UnConf 2026.
  • Rust NYC: The UnConf 2026.
  • 2026-12-04 | New York, NY, US | Women in Rust 👋Women in Rust x Rust NYC UnConf 2026
  • 👋Women in Rust x Rust NYC UnConf 2026

Oceania

  • 2026-11-12 | Brisbane City, AU | Rust Brisbane Rust Brisbane • November 2026
  • Rust Brisbane • November 2026
  • 2026-11-24 | Barton, AU | Canberra Rust User Group November Meetup
  • November 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

No, actually it is harder. Much harder. Your brain normally runs an error-correction pass on every word you read before that word reaches your conscious attention. This is why it's so easy to miss typos, but the correction doesn't just hide typos from you, it can replace entire phrases with what "ought" to be there. It takes continuous concentration to suppress this effect. […] (Curly brace placement is of course also subject to the error filter, but curly braces go with large changes in indentation, and that's usually a big enough visual flag to get past the filter. In fact that's why Rust requires all blocks to be braced -- the experience with C was that people would think indented statements were braced when they weren't.)

No, actually it is harder. Much harder. Your brain normally runs an error-correction pass on every word you read before that word reaches your conscious attention. This is why it's so easy to miss typos, but the correction doesn't just hide typos from you, it can replace entire phrases with what "ought" to be there. It takes continuous concentration to suppress this effect.

(Curly brace placement is of course also subject to the error filter, but curly braces go with large changes in indentation, and that's usually a big enough visual flag to get past the filter. In fact that's why Rust requires all blocks to be braced -- the experience with C was that people would think indented statements were braced when they weren't.)

– Zack Weinberg on rust-internals

Thanks to Michael Howell for the suggestion!

Please submit quotes and vote for next week!

This Week in Rust is edited by:

  • nellshamrell
  • ericseppanen
  • mariannegoldin
  • KannanPalani57

Email list hosting is sponsored by The Rust Foundation

Discuss on r/rust

Like what you see? Subscribe!

The text above was extracted automatically from the source page and may miss images, tables or code blocks. The original is authoritative.

Published by This Week in Rust
This site only summarises and aggregates; copyright stays with the original author. Headlines and summaries follow the source — where they differ, the original wins.
Read the original ↗