09 Apr 2026
Planet Mozilla
Andreas Farre: BuildCache now works with mach
I'm happy to announce that buildcache is now a first-class compiler cache in mach. This has been a long time coming, and I'm excited to finally see it land.
For those unfamiliar, buildcache is a compiler cache that can drastically cut down your rebuild times by caching compilation results. It's similar to ccache, but even more so sccache, in that it supports C/C++ out of the box, as well as Rust. It has some nice unique properties of its own though, which we'll look at more closely in following posts.
Getting started
Setting it up is straightforward. Just add the following to your mozconfig:
ac_add_options --with-ccache=buildcacheThen build as usual:
./mach buildThat's it.
Give it a try
If you run into any issues, please file a bug and tag me. I'd love to hear how it works out for people, and any rough edges you might hit.
09 Apr 2026 12:00am GMT
08 Apr 2026
Planet Mozilla
Firefox Tooling Announcements: MozPhab 2.12.0 Released
Bugs resolved in Moz-Phab 2.12.0:
- bug 2029015 Clean up
previous_commitstate tracking - bug 2029072 Using
moz-phab uplift --assessment-idshouldn't require extra browser clicks
Discuss these changes in #engineering-workflow on Slack or #Conduit Matrix.
1 post - 1 participant
08 Apr 2026 6:04pm GMT
This Week In Rust: This Week in Rust 646
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
- docs.rs: building fewer targets by default
- Changes to WebAssembly targets and handling undefined symbols
- Leadership Council update - March 2026
Foundation
- What's Next for the Rust Innovation Lab?
- Rust Foundation Interop Initiative Update: From Research to Implementation
Newsletters
Project/Tooling Updates
- Surelock
- Rust for CPython Progress Update April 2026
- RustRover 2026.1: Professional Testing With Native cargo-nextest Integration
- Toasty, an async ORM for Rust, is now on crates.io
- slopc: The cursed macro Rust maintainers never anticipated
- Processing 1M Chess Games in 15 Seconds with Rust
- Dumap v1.1: Cross-platform disk usage treemap visualization
- Proxelar 0.4.0: Intercept & Modify Traffic
- amoxide: composable, context-aware shell aliases
- Ply 1.1: Building Polished UIs in Rust
- Myth Engine: A compiler-style RenderGraph for cross-platform rendering
- selinux-explain
Observations/Thoughts
- Callgraph analysis
- Fixing our own problems in the Rust compiler
- 800 Rust terminal projects in 3 years
- What We Learned Building a Rust Runtime for TypeScript
- Supply chain nightmare: How Rust will be attacked and what we can do to mitigate the inevitable
- Building an SSA-Based Declarative Render Graph in Rust
- [audio] Protocol Shorts: TLS Encrypted Client Hello
Rust Walkthroughs
- Learn Rust Basics By Building a Brainfuck Interpreter
- How uv Works Under the Hood
- Building Postgres compatibility in Rust: pgwire and DataFusion
- [video] impl Rust: WAV noise generator
Miscellaneous
Crate of the Week
This week's crate is aimdb-core, a type-safe and platform-agnostic data pipeline where the Rust type system is the schema and trait implementations define its behavior.
Thanks to sounds.like.lx for the 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, Rustup 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.
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.
- NDC Techtown | CFP open until 2026-04-14 | Kongsberg, Norway | 2026-09-09 - 2026-09-12.
- EuroRust | CFP open until 2026-04-27 | Barcelona, Spain | 2026-10-14 - 2026-10-17
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
479 pull requests were merged in the last week
Compiler
- compute the result of a projection type with region errors
- make
layout_ofcycles fatal errors - properly generalize unevaluated consts
Library
- add integer truncation and extension methods
- debugger visualizers: optimize lookup behavior
- impl
StepforNonZero<u*> - introduce
#[diagnostic::on_move]onArc - make
substr_rangeandsubslice_rangereturn the newRangetype - more informative
Debug for vec::ExtractIf - stabilize new Range type and iterator
Cargo
lints: Emitunused_dependencieslintcompile: Don't hide hard warnings with build.warnings=allowcompile: build.warnings=allow should not hide denied diagnosticsinstall: Ignore resolver.lockfile-path- add frame-pointers profile option
- set CARGO env var during rustc -vV probe
- send Content-Type header with cargo publish requests
- simplified build script bin names in new layout
- split out
cargo-util-terminal - warn on invalid jobserver file descriptors
Clippy
unsafe_removed_from_name: skip linting when renaming to'_'- unnecessary type cast causing a compile error
- multiple fixes to false negatives of
question_mark - perf: disable
nonminimal_boolby default - rework
expr_use_ctxtinto an iterator over successive use sites - unneeded wildcard improvement
Rust-Analyzer
- add support for folding ranges for chained expressions
- implement thin-arrow completion in fn return position
- offer on tail-expr with else-branch for
if_let_to_guardedassist - support labeled block for
convert_to_guarded_return - support macro expansion in
#[doc = ...]attributes - fix extract function invalid self param
- add semicolon for postfix format unit like snippets
- fix a cycle in bounds lowering
- fix extract variable on arg with comma
- fix indent for
convert_let_else_to_match - fix param inlayHints on empty expr and comma
- fix stale diagnostics when a custom check command is configured
- fix
SyntaxEditorupmapping of nodes with mapped ancestor that aren't mapped themselves - improve inserted order for
trait_impl_redundant_assoc_item - load rust-analyzer.toml for virtual workspaces
- not suggest name in nested type in variant
- offer
'type_mismatch'some fixes inside macro - offer on empty else block for
'convert_let_else_to_match' - report
expected type, found {in parser - silence type mismatch diagnostic when type is unknown
- support cfg-ing array elements
- support filesystems that don't send Create events
- support multiple snippet placeholders in VS Code extension
- unconditionally pass
--include-ignoredfor test runnables - use the correct project root when there are multiple workspaces
- wrap parentheses on guard for
replace_if_let_with_match - impl Display type hint inlay hints at the end of the line
- implement
feature(more_qualified_paths) - make matching brace work when cursor not at bracket
- move mutability responsibility from caller to
edit_algo - move syntax editor initialization invariants to its constructor
- publish no-server to Code Marketplace and OpenVSX
- replace add trait assoc items to impl with its factory variant
Rust Compiler Performance Triage
A shorter week than normal (probably due to later perf triage last week). Overall fairly small changes scattered across various PRs, though the net effect was slightly positive (-0.5% avg change). All changed ended up either mixed or improvements this week.
Triage done by @simulacrum. Revision range: cf7da0b7..e73c56ab
0 Regressions, 3 Improvements, 8 Mixed; 5 of them in rollups 26 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
- report the
varargs_without_patternlint in deps - Partially stabilize LoongArch target features
- Never break between empty parens
- No Cargo Tracking Issues or PRs entered Final Comment Period this week.
No Items entered Final Comment Period this week for Rust RFCs, Language Reference, Language Team, Leadership Council 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
- Propose the concept of a crates.io username for identity
- RFC: Inheriting of default-features in Cargo
- Add Bitbucket Cloud OAuth login for crates.io
- MIR move elimination
Upcoming Events
Rusty Events between 2026-04-08 - 2026-05-06 🦀
Virtual
- 2026-04-09 | Virtual (Berlin, DE) | Rust Berlin
- 2026-04-14 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-14 | Virtual (London, UK) | Women in Rust
- 2026-04-14 | Virtual (Tel Aviv-yafo, IL) | Code Mavens 🦀 - 🐍 - 🐪
- 2026-04-15 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-04-15 | Virtual (Girona, ES) | Rust Girona
- 2026-04-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-04-19 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-21 | Virtual (Washington, DC, US) | Rust DC
- 2026-04-22 | Virtual (Girona, ES) | Rust Girona
- 2026-04-23 | Virtual (Amsterdam, NL) | Bevy Game Development
- 2026-04-23 | Virtual (Berlin, DE) | Rust Berlin
- 2026-04-28 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-04-28 | Virtual (London, UK) | Women in Rust
- 2026-04-29 | Virtual (Girona, ES) | Rust Girona
- 2026-05-01 | Virtual (Nürnberg, DE) | Rust Nuremberg
- 2026-05-02 | Virtual (Kampala, UG) | Rust Circle Meetup
- 2026-05-03 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-05-06 | Virtual (Indianapolis, IN, US) | Indy Rust
Asia
- 2026-04-11 | Bangalore, IN | Rust Bangalore
- 2026-04-17 | Bangalore, IN | Rust India
- 2026-04-18 | Bangalore, IN | Rust India
Europe
- 2026-04-08 | Girona, ES | Rust Girona
- 2026-04-09 | Geneva, CH | Rust Meetup Geneva
- 2026-04-09 | Oslo, NO | Rust Oslo
- 2026-04-21 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2026-04-23 | Aarhus, DK | Rust Aarhus
- 2026-04-24 - 2026-04-26 | Augsburg, DE | Rust Meetup Augsburg
- 2026-05-02 | Augsburg, DE | Rust Munich and Rust Augsburg
- 2026-05-04 | Frankfurt, DE | Rust Rhein-Main
North America
- 2026-04-09 | Chicago, IL, US | Chicago Rust Meetup
- 2026-04-09 | Lehi, UT, US | Utah Rust
- 2026-04-09 | Montréal, QC, CA | Rust Montréal
- 2026-04-09 | Portland, OR, US | PDXRust
- 2026-04-09 | San Diego, CA, US | San Diego Rust
- 2026-04-11 | Boston, MA, US | Boston Rust Meetup
- 2026-04-14 | Charlottesville, VA, US | Charlottesville Rust Meetup
- 2026-04-15 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-04-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-04-16 | Mountain View, CA, US | Hacker Dojo
- 2026-04-16 | Nashville, TN, US | Music City Rust Developers
- 2026-04-18 | Boston, MA, US | Boston Rust Meetup
- 2026-04-20 - 2026-04-22 | Portland, OR | Tokio
- 2026-04-21 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-04-22 | Austin, TX, US | Rust ATX
- 2026-04-22 | New York, NY, US | Rust NYC
- 2026-04-23 | Los Angeles, CA, US | Rust Los Angeles
- 2026-04-25 | Boston, MA, US | Boston Rust Meetup
- 2026-04-30 | Atlanta, GA, US | Rust Atlanta
Oceania
- 2026-04-09 | Brisbane City, QL, AU | Rust Brisbane
South America
- 2026-04-11 | Buenos Aires, AR | Oxidar Org
- 2026-04-17 | Rio de Janeiro, BR | Meetups Rust RJ
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 tried to have polymorphic generics in the early pre-1.0 days, and they quite reasonably gave up because it was too much work. For real Swift, great fucking working for getting all of this to work!
llogiq thanks himself 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
08 Apr 2026 4:00am GMT