16 Jul 2026
Planet Mozilla
The Rust Programming Language Blog: Announcing Rust 1.97.1
The Rust team has published a new point release of Rust, 1.97.1. Rust is a programming language that is empowering everyone to build reliable and efficient software.
If you have a previous version of Rust installed via rustup, getting Rust 1.97.1 is as easy as:
rustup update stable
If you don't have it already, you can get rustup from the appropriate page on our website.
What's in 1.97.1
Rust 1.97.1 fixes a miscompilation in an LLVM optimization.
We have backported both an LLVM fix and a disable of the underlying change in Rust 1.97.0 of Rust's generated IR that increased the likelihood of this happening. However, note that the underlying miscompilation has been present since at least Rust 1.87.
If you'd like to help us out by testing future releases, you might consider running your code's CI or locally using the beta channel (rustup default beta) or the nightly channel (rustup default nightly). Please report any bugs you might come across!
Contributors to 1.97.1
Many people came together to create Rust 1.97.1. We couldn't have done it without all of you. Thanks!
16 Jul 2026 12:00am GMT
15 Jul 2026
Planet Mozilla
This Week In Rust: This Week in Rust 660
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
- Rewriting Bun in Rust
- Announcing BullMQ for Rust
- prost-protovalidate 0.6 - buf.validate (protovalidate) for prost and buffa: compile-time codegen + runtime CEL, 2872/2872 conformance
- plaza 1.0: a ratatui package-manager TUI that searches pacman, the AUR, apt, dnf, and Flatpak at once
- Danube v0.15.1: native Apache Iceberg integration for streaming-to-lakehouse export
- Guardian Sentinel. The Terminal User Interface for Guardian Decentralized Database - P2P
- kobe 0.33.0: a Rust operator for instant CI Kubernetes clusters
- Elara Mesh: what the black box for AI agents actually does
-
cochlea 0.1.0: a headless, deterministic audio engine for AI agents
Observations/Thoughts
- Open Source Security Podcast: Rust Foundation Maintainers Fund with Lori and Niko
- Moving a Rust WebRTC SFU to thread-per-core
- Faster Rust tests in CI with parallel steps
- [video] The Only Diagram You Need to Understand Rust Ownership
- We compiled our TypeScript parser to WASM
- Understanding the Rust hype for the busy developer
- I red-teamed my own LLM security gateway (Rust) in four passes - every detection gap and how I closed it
Rust Walkthroughs
- [video] Backend Concepts in Rust: HTTP Servers
- Fearless Embedded Rust: A FPV Lego car
- What I learned building a self-corrupting file format in Rust
- Come Async You Are
Miscellaneous
Crate of the Week
This week's crate is dashu, a pure Rust set of libraries of arbitrary precision numbers.
Thanks to JacobZ 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.
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
550 pull requests were merged in the last week
Compiler
- inline some
Symbolfunctions - predicate/clause cleanups
- remove some AST
tokensfields - resolver: wrap arenas in
WorkerLocal - rework read deduplication with pooled read recorders
- shrink
mir::Statementto 40 bytes - shrink no-op drop elaboration
- specialize common
(1, 1)case for arg unification - use SmallVec for return places in MIR
Library
- add explicit
Iterator::countimpl forChunkBy - allow
Allocators to be used as#[global_allocator]s - fix multiple logic bugs in
Arc::make_mut - implement feature
char_to_u32 - make volatile operations const
- move
std::io::Writetocore::io - stabilize
String::from_utf8_lossy_owned - stabilize
VecDeque::retain_backfromtruncate_front
Cargo
install: Move --debug to Compilation optionssource: incorrect duplicate package warning- fix manifest schema generation:
TomlDebugInfoenum-variants doesn't renamed - dont apply host-config gating to stable behavior
- reduce library search path length in new build dir layout
- reduce rustc
-Largs used in the newbuild-dirlayout - rename
-Zno-embed-metadatato-Zembed-metadata=no - test: fix race in
cargo_compile_with_invalid_code_in_deps
Clippy
- add new lints:
rest_pattern_accessible_fieldandunnecessary_rest_pattern - new lint:
definition_in_module_root arbitrary_source_item_ordering: add configurable trait impl item ordering modestests_outside_test_module: put code in backticks in the lint message- count length of the first paragraph by its text
- fix
suboptimal_flopsfalse negative with ambiguous float literals - partly disable
unneeded_wildcard_patternwhenrest_pattern_accessible_fieldis enabled - respect the configured MSRV in
implicit_saturating_sub'sif x != 0 { x -= 1 }rewrite - trigger
single_element_loopif the block contains only a final expression - optimize
nonstandard_macro_bracesby 99.9683% (1.1b → 351K) - perf: bail out of the
disallowed_methodsrule if the disallowed list is empty
Rust-Analyzer
- ask for disclosure in AI contributions
- add fixes for array length for
type_mismatch - add parens in transformed dyn type in ref type
- avoid panic in merge imports on trailing path separator
- change some things for
#[doc = macro!()]expansion - clamp cttz const-eval result to type width
- correctly handled cfg'ed tail expr, take 2
- crash on code actions when an unresolved module is present
- crash when computing diagnostics with MIR and error types
- don't complete default in default impl
- early late classification of lifetimes
- fix
render_const_using_debug_implconstructing outdated std layouts - fix proc macros
TokenStream::from_str()for doc comments - hide private fields on hover depending on context
- make lsp-server
Responsetype closer aligned to JSON-RPC - pretty assoc const when trait in macro
- reimplement
crate_supports_no_stdsyntactic heuristic - resolve non-plain paths in blocks correctly
- support Cargo 1.97.0 lockfile path setting
- hir-ty: walk container exprs for
unused_must_use - fix onEnter erroneously deleting/interpreting
$foo - suggest code action fixes produced from diagnostics under cursor, even if they have effects elsewhere
- treat library files as truly client immutable
- turn
BlockLocinto a tracked struct, take 3
Rust Compiler Performance Triage
This week many new optimizations landed, making this a very good week for performance. The only real regression was a fix for a miscompile that will likely be re-landed in the future.
Triage done by @JonathanBrouwer. Revision range: 3659db0d..5503df87
Summary:
| (instructions:u) | mean | range | count |
|---|---|---|---|
| Regressions ❌ (primary) |
0.3% | [0.2%, 0.4%] | 3 |
| Regressions ❌ (secondary) |
0.9% | [0.1%, 2.5%] | 25 |
| Improvements ✅ (primary) |
-1.2% | [-9.9%, -0.2%] | 195 |
| Improvements ✅ (secondary) |
-3.4% | [-92.1%, -0.1%] | 174 |
| All ❌✅ (primary) | -1.2% | [-9.9%, 0.4%] | 198 |
2 Regressions, 10 Improvements, 10 Mixed; 7 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:
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
- enable
unreachable_cfg_select_predicateslint as part ofunusedlint group - Stabilize
dyn Allocator - Tracking Issue for vec_try_remove
- Partially stabilize
box_vec_non_null - Never break between empty parens
- Enable
-Zpolonius=nexton nightly - Enable
-Znext-solveron nightly by default for testing - Stabilizing the state of the debuginfo test suite
- Optimize
repr(Rust)enums by omitting tags in more cases involving uninhabited variants. - Proposal for Adapt Stack Protector for Rust
No Items entered Final Comment Period this week for Cargo, Language Reference, Language Team, Leadership Council, Rust RFCs 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 2026-07-15 - 2026-08-12 🦀
Virtual
- 2026-07-15 | Virtual (Girona, ES) | Rust Girona
- 2026-07-15 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-07-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-07-16 | Virtual (Berlin, DE) | Rust Berlin
- 2026-07-19 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-07-21 | Virtual (London, UK) | Women in Rust
- 2026-07-21 | Virtual (Tel Aviv-yafo, IL) | Rust 🦀 TLV
- 2026-07-21 | Virtual (Washington, DC, US) | Rust DC
- 2026-07-22 | Virtual (Girona, ES) | Rust Girona
- 2026-07-23 | Mountain View, CA, US | Hacker Dojo
- 2026-07-28 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-07-29 | Virtual (Girona, ES) | Rust Girona
- 2026-07-30 | Virtual (Berlin, DE) | Rust Berlin
- 2026-08-02 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-08-04 | Virtual (London, GB) | Women in Rust
- 2026-08-05 | Virtual (Girona, ES) | Rust Girona
- 2026-08-05 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2026-08-11 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
- 2026-08-12 | Virtual (Girona, ES) | Rust Girona
- 2026-07-19 | Virtual (Bangalore, IN) | Embedded Rust Discord
Asia
- 2026-07-18 | Bangalore, IN | Rust Bangalore
- 2026-07-19 | Virtual (Bangalore, IN) | Embedded Rust Discord
- 2026-07-25 | Mumbai, IN | Rust Mumbai
- 2026-07-26 | Pune, MA, IN | Rust Pune
Europe
- 2026-07-15 | Dortmund, DE | Rust Dortmund
- 2026-07-21 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
- 2026-07-23 | Berlin, DE | Rust Berlin
- 2026-07-23 | London, UK | London Rust Project Group
- 2026-07-23 | London, UK | Rust London User Group
- 2026-07-23 | Paris, FR | Rust Paris
- 2026-07-29 | Poland, PL | Rust Poland
- 2026-07-30 | Manchester, GB | Rust Manchester
North America
- 2026-07-15 | Hybrid (Vancouver, BC, CA) | Vancouver Rust
- 2026-07-16 | Hybrid (Seattle, WA, US) | Seattle Rust User Group
- 2026-07-18 | Boston, MA, US | Boston Rust Meetup
- 2026-07-21 | San Francisco, CA, US | San Francisco Rust Study Group
- 2026-07-22 | Austin, TX, US | Rust ATX
- 2026-07-22 | Los Angeles, CA, US | Rust Los Angeles
- 2026-07-22 | New York, NY, US | Rust NYC
- 2026-07-25 | Boston, MA, US | Boston Rust Meetup
- 2026-07-25 | Brooklyn, NY, US | Flower
- 2026-07-30 | Atlanta, GA, US | Rust Atlanta
- 2026-08-01 | Boston, MA, US | Boston Rust Meetup
- 2026-08-04 | Boston, MA, US | Boston Rust Meetup
- 2026-08-06 | Saint Louis, MO, US | STL Rust
South America
- 2026-08-08 | São Paulo, SP | Rust-SP
Oceania
- 2026-07-21 | Barton, AU | Canberra Rust User Group
- 2026-07-23 | Perth, AU | Rust Perth Meetup Group
- 2026-07-30 | Melbourne, AU | Rust Melbourne
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
Thank you for your PR, but please edit the description like you are a chainsaw-wielding maniac that just discovered the sentences are young adults who came to the lake at summer camp after sunset.
- workingjubilee on Rust github
Thanks to Theemathas 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
15 Jul 2026 4:00am GMT
14 Jul 2026
Planet Mozilla
Thunderbird Blog: Community Office Hours: A Thundermail Update

Our Community Office Hours series is all about connecting with the people behind Thunderbird and our products, and sharing the work that's happening behind the scenes. These conversations are a chance to learn more about the direction of our projects and to hear directly from the people making it happen.
In this episode, we are talking about Thundermail!
Since we first shared our plans for Thundermail, we have seen an incredible amount of excitement, curiosity, and thoughtful feedback from the community of early bird testers. In this Community Office Hours session, members of the Thunderbird team sit down to talk about the project's vision, share where things stand today, and answer some of the questions we've been getting along the way.
In this conversation, you'll hear about:
- Progress since the initial announcement of Thunderbird Pro and Thundermail
- Many of the community's questions submitted via Reddit.
- What we're working on next and what you can expect in the months ahead.
One of the best parts of Community Office Hours is the opportunity to have open conversations with our community. Your questions, ideas, and feedback help shape Thunderbird and its products, and we are excited to keep sharing updates as Thundermail continues to evolve.
Resources
Resources for Suggesting Features:
Thunderbird on Desktop and Mobile - https://connect.mozilla.org
Thundermail and Thunderbird Pro - https://ideas.tb.pro
Resources for diving into Thundermail:
Thundermail (and other services) roadmap: https://roadmaps.thunderbird.net/en-US/services/
Subreddit: https://www.reddit.com/r/ThunderbirdPro/
Thunderbird Pro addon repo that is now shipped natively in Thunderbird: https://github.com/thunderbird/tbpro-add-on
Thunderbird Accounts repo: https://github.com/thunderbird/thunderbird-accounts
Webmail client repo: https://github.com/thunderbird/stormbox
Appointment repo: https://github.com/thunderbird/appointment
Thundermail deployment repo: https://github.com/thunderbird/thundermail-deploy
SieveConnect repo: https://github.com/philpennock/sieve-connect
Resources for Getting Help with Thunderbird:
Thunderbird for Android Support Channel (Matrix) - https://matrix.to/#/#tb-android:mozilla.org
Thunderbird Desktop Support Channel (Matrix) - https://matrix.to/#/#thunderbird:mozilla.org
The post Community Office Hours: A Thundermail Update appeared first on The Thunderbird Blog.
14 Jul 2026 7:36pm GMT