{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreib5gl3am3h2xvryqrlv5izm5uh3fnw64jozbjf3e5pyqkpm3yar2a",
"uri": "at://did:plc:mbg47fuifchzhulb5djupokz/app.bsky.feed.post/3mnihvjd5psg2"
},
"path": "/blog/2026/06/03/this-week-in-rust-654/",
"publishedAt": "2026-06-03T04:00:00.000Z",
"site": "https://this-week-in-rust.org",
"tags": [
"This Week in Rust",
"Rust",
"@thisweekinrust.bsky.social",
"@ThisWeekinRust",
"send us a pull request",
"We love contributions",
"on GitHub",
"this-week-in-rust.org",
"please submit a PR",
"Subscribe here",
"Launching the Rust Foundation Maintainers Fund",
"One year of Roto, the compiled scripting language for Rust",
"xa11y: cross-platform desktop automation via native accessibility APIs",
"halloy 2026.7 - now supports IRCv3 reply, redact, metadata, bot mode and more!",
"Building a Native Markdown Previewer for AI-Generated Docs with Rust and WebView",
"BPF in the agentic era",
"Nine Ways to Do Inheritance in Rust, a Language Without Inheritance",
"Async Rust: deep dive into cooperative scheduling and Tokio's architecture",
"ZK snarks for Rust developers: R1CS vs Plonkish vs AIR",
"Learn Rust Closures By Building a Tiny Rule-Based Linter",
"Learn Bevy States, Timers, and Grid Movement by Building Snake",
"RustCurious lesson 8: Generics and Monomorphization",
"Counterfactuals via the Causal Monad in Rust",
"remyx",
"Manuel Garcia de la Vega",
"Please submit your suggestions and votes for next week",
"Cargo",
"Rustup",
"Rust language RFCs",
"Let us know",
"MD Preview - Package MD Preview for Homebrew Cask",
"OpenSlate - Test Health Check Endpoint",
"OpenSlate - Test Login Endpoint",
"OpenSlate - Test Notes CRUD Endpoint",
"OpenSlate - Test Search Endpoint",
"OpenSlate - Test Preference Endpoint",
"here",
"PR to TWiR",
"Bluesky",
"Mastodon",
"Scientific Computing in Rust 2026",
"merged in the last week",
"expand async drops during drop elaboration",
"offload_kernel macro expansion",
"std::offload sharedmem",
"constify Iterator-related methods and functions",
"move IoSlice and IoSliceMut to core::io",
"specialize Clone of array IntoIter",
"stabilize Path::is_empty",
"stop needing an alloca for catch_unwind",
"diag: Add the 'cargo::default' group",
"diag: Report summaries for unused_deps",
"add --output-format=json to cargo doc as an unstable option",
"add edition for scripts anytime we mutate the manifest",
"avoid ICE when rendering body-less type consts",
"correctly propagate cfgs for glob reexports",
"deterministic sorting for doc_cfg badges",
"fix ICE on delegated async functions",
"optimize impl sorting",
"separate the caches for synthetic auto trait & blanket impls",
"add unused_async_trait_impl lint",
"add new lint: for_unbounded_range",
"added new lint for map_or(..., identity)",
"redundant_pattern_match: improve suggestions",
"faster has_arg",
"fold all early lint passes into one statically-combined pass",
"fold all late lint passes into one statically-combined pass",
"memoize first_node_in_macro for consecutive queries",
"skip disabled off-by-default doc reparses",
"always use crates from sysroot in proc-macro-srv",
"enable salsa feature for syntax-bridge",
"also consider library features internal",
"do not fill both drop() and pin_drop() in the \"fill missing members\" assist",
"fix extract variable in token tree replace range",
"port block and loop inference from rustc",
"try to improve completion ranking",
"use add deref in assign instead add &mut for value",
"kill proc-macro-srv processes on shutdown",
"remove direct use of make constructor with editor make",
"remove make from rename and prettify macro expansion",
"155678",
"157179",
"783eb8c8..4804ad7e",
"Full report here",
"Approved RFCs",
"RFC (request for comments) process",
"the team",
"Tracking Issue for strip_circumfix",
"Tracking issue for CommandExt::show_window",
"Tracking Issue for path_set_times",
"Tracking Issue for nonzero_from_str_radix",
"Tracking Issue for LoongArch CRC Intrinsics",
"Tracking Issue for Vec::from_fn",
"Add Step::forward/backward_overflowing to enable RangeInclusive loop optimizations",
"Stabilize core::range::{legacy, RangeFull, RangeTo}",
"Tracking Issue for box_as_ptr",
"Tracking Issue for explicit-endian String::from_utf16",
"Reduce unreachable-code churn after todo!()",
"make repr_transparent_non_zst_fields a hard error",
"Tracking Issue for algebraic floating point methods",
"riscv: promote d, e, and f target_features to CfgStableToggleUnstable",
"Tracking Issue for PathBuf::into_string",
"Compiler Team",
"(MCPs only)",
"Desugar async blocks in HIR instead of MIR",
"Test new solver and polonius alpha on CI",
"Add -Zllvm-target-feature target *modifier* to directly set LLVM-level target features, and deprecate doing that with -Ctarget-feature",
"Set requirements for windows-gnu",
"Create a new Tier 3 target: powerpc64le-unknown-none",
"Add flag to pass MSRV/package.rust-version for use by lints",
"Optimize repr(Rust) enums by omitting tags in more cases involving uninhabited variants.",
"Promote tier 3 riscv32 ESP-IDF targets to tier 2",
"Proposal for Adapt Stack Protector for Rust",
"Unsafe Code Guidelines",
"Can references to uninhabited types ever be valid?",
"Rust RFCs",
"Language Team",
"Language Reference",
"Leadership Council",
"New and Updated RFCs",
"BTF relocations",
"--allow-unstable-flags: Allow unstable flags on stable",
"Indy Rust",
"Indy.rs - with Social Distancing",
"Rust Berlin",
"Rust Hack and Learn",
"Rust Nuremberg",
"Rust Nürnberg online",
"Code Mavens 🦀 - 🐍 - 🐪",
"Exploring FalkorDB - Learning to use a Graph Database in Rust",
"Rust Circle Meetup",
"Dallas Rust User Meetup",
"Rust Deep Learning: First Sunday",
"Rust and C++ Cardiff",
"RustWeek Reflections",
"Second Tuesday",
"Women in Rust",
"👋 Community Catch Up",
"Rust Girona",
"Weekly coding session",
"Rust DC",
"Mid-month Rustful",
"Vancouver Rust",
"Rust Study/Hack/Hang-out",
"Seattle Rust User Group",
"June, 2026 SRUG (Seattle Rust User Group) Meetup",
"Rust Deep Learning: Third Sunday",
"Fourth Tuesday",
"Lunch & Learn: What the heck are monads - and how do we fake them in Rust",
"Johannesburg Rust Meetup",
"Rust by Example - Lifetimes",
"Rust Dublin",
"Join us live and INPERSON for Rust 261",
"Rust Girona Hack & Learn 06 2026",
"Rust Munich",
"Rust Munich 2026 / 2 - Hacking Evening",
"PostTenebrasLab",
"Rust Meetup Geneva",
"Rustmeet",
"Rust - Modern Systems Programming in Leipzig",
"Interactive: Everything is Open Source",
"Rust Language Milan",
"Real-time planning in Rust: SolverForge & SERIO",
"Rust Aarhus",
"Talk Night at Danske Commodities",
"Rust Paris",
"Rust meetup #86",
"Rust Berlin Talks: The next generation",
"Chicago Rust Meetup",
"Rust Happy Hour",
"STL Rust",
"Testing, Coverage, Tracey & Mutations",
"Boston Rust Meetup",
"Boston Common Rust Lunch, June 6",
"Utah Rust",
"Utah Rust June Meetup",
"Hacker Dojo",
"RUST MEETUP at HACKER DOJO",
"San Diego Rust",
"San Diego Rust June Meetup - Back in person!",
"San Francisco Rust Study Group",
"Rust Hacking in Person",
"Rust ATX",
"Rust Lunch - Fareground",
"Rust Los Angeles",
"Rust LA: Rust-Based Constraint Solvers in 2D Sketching with Zoo Technologies",
"Rust Atlanta",
"Rust-Atl",
"Rust NYC",
"Rust NYC's Big Summer Social",
"Rust Melbourne",
"Rust Melbourne June 2026",
"Rust SC",
"Rust Floripa",
"calendar",
"Who's Hiring thread on r/rust",
"kornel on rust-users",
"Moy2010",
"Please submit quotes and vote for next week!",
"nellshamrell",
"llogiq",
"ericseppanen",
"extrawurst",
"U007D",
"mariannegoldin",
"bdillo",
"opeolluwa",
"bnchi",
"KannanPalani57",
"tzilist",
"The Rust Foundation",
"Discuss on r/rust",
"@Kobzol"
],
"textContent": "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.\n\n_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.\n\nWant TWIR in your inbox? Subscribe here.\n\n## Updates from Rust Community\n\n### Official\n\n * Launching the Rust Foundation Maintainers Fund\n\n\n\n### Project/Tooling Updates\n\n * One year of Roto, the compiled scripting language for Rust\n * xa11y: cross-platform desktop automation via native accessibility APIs\n * halloy 2026.7 - now supports IRCv3 reply, redact, metadata, bot mode and more!\n * Building a Native Markdown Previewer for AI-Generated Docs with Rust and WebView\n * BPF in the agentic era\n\n\n\n### Observations/Thoughts\n\n * Nine Ways to Do Inheritance in Rust, a Language Without Inheritance\n * Async Rust: deep dive into cooperative scheduling and Tokio's architecture\n\n\n\n### Rust Walkthroughs\n\n * ZK snarks for Rust developers: R1CS vs Plonkish vs AIR\n * Learn Rust Closures By Building a Tiny Rule-Based Linter\n * Learn Bevy States, Timers, and Grid Movement by Building Snake\n * [video] RustCurious lesson 8: Generics and Monomorphization\n\n\n\n### Research\n\n * Counterfactuals via the Causal Monad in Rust\n\n\n\n## Crate of the Week\n\nThis week's crate is remyx, a framework for building TUIs on top of Ratatui.\n\nThanks to Manuel Garcia de la Vega for the self-suggestion!\n\nPlease submit your suggestions and votes for next week!\n\n## Calls for Testing\n\nAn important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization.\n\nIf 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.\n\n_No calls for testing were issued this week by Rust, Cargo, Rustup or Rust language RFCs._\n\nLet us know if you would like your feature to be tracked as a part of this list.\n\n## Call for Participation; projects and speakers\n\n### CFP - Projects\n\nAlways 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!\n\nSome of these tasks may also have mentors available, visit the task page for more information.\n\n * MD Preview - Package MD Preview for Homebrew Cask\n * OpenSlate - Test Health Check Endpoint\n * OpenSlate - Test Login Endpoint\n * OpenSlate - Test Notes CRUD Endpoint\n * OpenSlate - Test Search Endpoint\n * OpenSlate - Test Preference Endpoint\n\n\n\nIf 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!\n\n### CFP - Events\n\nAre 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.\n\n * Scientific Computing in Rust 2026| 2026-06-05 | Virtual | 2026-07-08 - 2026-07-10\n\n\n\nIf 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!\n\n## Updates from the Rust Project\n\n500 pull requests were merged in the last week\n\n#### Compiler\n\n * expand async drops during drop elaboration\n * offload_kernel macro expansion\n * std::offload sharedmem\n\n\n\n#### Library\n\n * constify Iterator-related methods and functions\n * move IoSlice and IoSliceMut to core::io\n * specialize Clone of array IntoIter\n * stabilize Path::is_empty\n * stop needing an alloca for catch_unwind\n\n\n\n#### Cargo\n\n * diag: Add the 'cargo::default' group\n * diag: Report summaries for unused_deps\n * add --output-format=json to cargo doc as an unstable option\n * add edition for scripts anytime we mutate the manifest\n\n\n\n#### Rustdoc\n\n * avoid ICE when rendering body-less type consts\n * correctly propagate cfgs for glob reexports\n * deterministic sorting for doc_cfg badges\n * fix ICE on delegated async functions\n * optimize impl sorting\n * separate the caches for synthetic auto trait & blanket impls\n\n\n\n#### Clippy\n\n * add unused_async_trait_impl lint\n * add new lint: for_unbounded_range\n * added new lint for map_or(..., identity)\n * redundant_pattern_match: improve suggestions\n * faster has_arg\n * fold all early lint passes into one statically-combined pass\n * fold all late lint passes into one statically-combined pass\n * memoize first_node_in_macro for consecutive queries\n * skip disabled off-by-default doc reparses\n\n\n\n#### Rust-Analyzer\n\n * always use crates from sysroot in proc-macro-srv\n * enable salsa feature for syntax-bridge\n * also consider library features internal\n * do not fill both drop() and pin_drop() in the \"fill missing members\" assist\n * fix extract variable in token tree replace range\n * port block and loop inference from rustc\n * try to improve completion ranking\n * use add deref in assign instead add &mut for value\n * kill proc-macro-srv processes on shutdown\n * remove direct use of make constructor with editor make\n * remove make from rename and prettify macro expansion\n\n\n\n### Rust Compiler Performance Triage\n\nThis week we saw nice wins across the board thanks to merging several compiler queries together (#155678), and also substantial improvements in `doc` performance thanks to doing less work when sorting trait impls (#157179).\n\nTriage done by **@Kobzol**. Revision range: 783eb8c8..4804ad7e\n\n**Summary** :\n\n(instructions:u) | mean | range | count\n---|---|---|---\nRegressions ❌\n(primary) | 0.3% | [0.1%, 0.7%] | 14\nRegressions ❌\n(secondary) | 0.4% | [0.1%, 0.9%] | 39\nImprovements ✅\n(primary) | -0.9% | [-6.8%, -0.2%] | 111\nImprovements ✅\n(secondary) | -1.1% | [-2.9%, -0.1%] | 53\nAll ❌✅ (primary) | -0.8% | [-6.8%, 0.7%] | 125\n\n3 Regressions, 1 Improvement, 2 Mixed; 4 of them in rollups 35 artifact comparisons made in total\n\nFull report here.\n\n### Approved RFCs\n\nChanges to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:\n\n * _No RFCs were approved this week._\n\n\n\n### Final Comment Period\n\nEvery week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.\n\n#### Tracking Issues & PRs\n\n##### Rust\n\n * Tracking Issue for strip_circumfix\n * Tracking issue for CommandExt::show_window\n * Tracking Issue for path_set_times\n * Tracking Issue for nonzero_from_str_radix\n * Tracking Issue for LoongArch CRC Intrinsics\n * Tracking Issue for Vec::from_fn\n * Add Step::forward/backward_overflowing to enable RangeInclusive loop optimizations\n * Stabilize core::range::{legacy, RangeFull, RangeTo}\n * Tracking Issue for box_as_ptr\n * Tracking Issue for explicit-endian String::from_utf16\n * Reduce unreachable-code churn after todo!()\n * make repr_transparent_non_zst_fields a hard error\n * Tracking Issue for algebraic floating point methods\n * riscv: promote d, e, and f target_features to CfgStableToggleUnstable\n * Tracking Issue for PathBuf::into_string\n\n\n\n##### Compiler Team (MCPs only)\n\n * Desugar async blocks in HIR instead of MIR\n * Test new solver and polonius alpha on CI\n * Add -Zllvm-target-feature target *modifier* to directly set LLVM-level target features, and deprecate doing that with -Ctarget-feature\n * Set requirements for windows-gnu\n * Create a new Tier 3 target: powerpc64le-unknown-none\n * Add flag to pass MSRV/package.rust-version for use by lints\n * Optimize repr(Rust) enums by omitting tags in more cases involving uninhabited variants.\n * Promote tier 3 riscv32 ESP-IDF targets to tier 2\n * Proposal for Adapt Stack Protector for Rust\n\n\n\n##### Unsafe Code Guidelines\n\n * Can references to uninhabited types ever be valid?\n\n\n\n_No Items entered Final Comment Period this week for Rust RFCs, Cargo, Language Team, Language Reference or Leadership Council._ Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.\n\n### New and Updated RFCs\n\n * BTF relocations\n * --allow-unstable-flags: Allow unstable flags on stable\n\n\n\n## Upcoming Events\n\nRusty Events between 2026-06-03 - 2026-07-01 🦀\n\n### Virtual\n\n * 2026-06-03 | Virtual (Indianapolis, IN, US) | Indy Rust\n * Indy.rs - with Social Distancing\n * 2026-06-04 | Virtual (Berlin, DE) | Rust Berlin\n * Rust Hack and Learn\n * 2026-06-04 | Virtual (Nürnberg, DE) | Rust Nuremberg\n * Rust Nürnberg online\n * 2026-06-04 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪\n * Exploring FalkorDB - Learning to use a Graph Database in Rust\n * 2026-06-06 | Virtual (Kampala, UG) | Rust Circle Meetup\n * Rust Circle Meetup\n * 2026-06-07 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup\n * Rust Deep Learning: First Sunday\n * 2026-06-08 | Virtual (Cardiff, UK) | Rust and C++ Cardiff\n * RustWeek Reflections\n * 2026-06-09 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup\n * Second Tuesday\n * 2026-06-09 | Virtual (London, UK) | Women in Rust\n * 👋 Community Catch Up\n * 2026-06-10 | Virtual (Girona, ES) | Rust Girona\n * Weekly coding session\n * 2026-06-16 | Virtual (Washington, DC, US) | Rust DC\n * Mid-month Rustful\n * 2026-06-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust\n * Rust Study/Hack/Hang-out\n * 2026-06-17 | Virtual (Girona, ES) | Rust Girona\n * Weekly coding session\n * 2026-06-18 | Hybrid (Seattle, WA, US) | Seattle Rust User Group\n * June, 2026 SRUG (Seattle Rust User Group) Meetup\n * 2026-06-18 | Virtual (Berlin, DE) | Rust Berlin\n * Rust Hack and Learn\n * 2026-06-21 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup\n * Rust Deep Learning: Third Sunday\n * 2026-06-23 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup\n * Fourth Tuesday\n * 2026-06-23 | Virtual (London, UK) | Women in Rust\n * Lunch & Learn: What the heck are monads - and how do we fake them in Rust\n * 2026-07-01 | Virtual (Indianapolis, IN, US) | Indy Rust\n * Indy.rs - with Social Distancing\n\n\n\n### Africa\n\n * 2026-06-09 | Johannesburg, ZA | Johannesburg Rust Meetup\n * Rust by Example - Lifetimes\n\n\n\n### Europe\n\n * 2026-06-03 | Dublin, IE | Rust Dublin\n * Join us live and INPERSON for Rust 261\n * 2026-06-03 | Girona, ES | Rust Girona\n * Rust Girona Hack & Learn 06 2026\n * 2026-06-10 | München, DE | Rust Munich\n * Rust Munich 2026 / 2 - Hacking Evening\n * 2026-06-11 | Switzerland, CH | PostTenebrasLab\n * Rust Meetup Geneva\n * 2026-06-12 - 2026-06-14 | Kraków, PL | Rustmeet\n * Rustmeet\n * 2026-06-16 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig\n * Interactive: Everything is Open Source\n * 2026-06-16 | Milano, IT | Rust Language Milan\n * Real-time planning in Rust: SolverForge & SERIO\n * 2026-06-18 | Aarhus, DK | Rust Aarhus\n * Talk Night at Danske Commodities\n * 2026-06-23 | Paris, FR | Rust Paris\n * Rust meetup #86\n * 2026-06-25 | Berlin, DE | Rust Berlin\n * Rust Berlin Talks: The next generation\n\n\n\n### North America\n\n * 2026-06-04 | Chicago, IL, US | Chicago Rust Meetup\n * Rust Happy Hour\n * 2026-06-04 | Saint Louis, MO, US | STL Rust\n * Testing, Coverage, Tracey & Mutations\n * 2026-06-06 | Boston, MA, US | Boston Rust Meetup\n * Boston Common Rust Lunch, June 6\n * 2026-06-11 | Lehi, UT, US | Utah Rust\n * Utah Rust June Meetup\n * 2026-06-11 | Mountain View, CA, US | Hacker Dojo\n * RUST MEETUP at HACKER DOJO\n * 2026-06-11 | San Diego, CA, US | San Diego Rust\n * San Diego Rust June Meetup - Back in person!\n * 2026-06-16 | San Francisco, CA, US | San Francisco Rust Study Group\n * Rust Hacking in Person\n * 2026-06-16 | San Francisco, CA, US | San Francisco Rust Study Group\n * Rust Hacking in Person\n * 2026-06-17 | Hybrid (Vancouver, BC, CA) | Vancouver Rust\n * Rust Study/Hack/Hang-out\n * 2026-06-18 | Hybrid (Seattle, WA, US) | Seattle Rust User Group\n * June, 2026 SRUG (Seattle Rust User Group) Meetup\n * 2026-06-24 | Austin, TX, US | Rust ATX\n * Rust Lunch - Fareground\n * 2026-06-24 | Los Angeles, CA, US | Rust Los Angeles\n * Rust LA: Rust-Based Constraint Solvers in 2D Sketching with Zoo Technologies\n * 2026-06-25 | Atlanta, GA, US | Rust Atlanta\n * Rust-Atl\n * 2026-06-26 | New York, NY, US | Rust NYC\n * Rust NYC's Big Summer Social\n\n\n\n### Oceania\n\n * 2026-06-25 | Melbourne, AU | Rust Melbourne\n * Rust Melbourne June 2026\n\n\n\n### South America\n\n * 2026-06-18 | Florianópolis, BR | Rust SC\n * Rust Floripa\n\n\n\nIf 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.\n\n## Jobs\n\nPlease see the latest Who's Hiring thread on r/rust\n\n# Quote of the Week\n\n> If memory safety bugs were Waldo (Wally): finding them in C programs is a \"Where's Waldo?\" game, and Rust's `unsafe` simplifies it to \"Is _this_ Waldo?\"\n\n– kornel on rust-users\n\nThanks to Moy2010 for the suggestion!\n\nPlease submit quotes and vote for next week!\n\nThis Week in Rust is edited by:\n\n * nellshamrell\n * llogiq\n * ericseppanen\n * extrawurst\n * U007D\n * mariannegoldin\n * bdillo\n * opeolluwa\n * bnchi\n * KannanPalani57\n * tzilist\n\n\n\n_Email list hosting is sponsored by The Rust Foundation_\n\nDiscuss on r/rust",
"title": "This Week in Rust 654"
}