Rust Update Policy

We document here the decision making and planning around when we update the Rust toolchains used and required to build Firefox.

This allows contributors to know when new features will be usable, and downstream packagers to know what toolchain will be required for each Firefox release. Both benefit from the predictability of a schedule.

Policy

Official builds

We ship official stable Firefox with a stable Rust.

As a general rule, we update the Rust version used to build Firefox Nightly soon after its release, unless we’re in a toolchain freeze period, which starts 7 days before a merge day. In that case, we wait for the next Nightly train.

We don’t upgrade the Rust version in the beta or release branches of Firefox.

The following exceptions apply:

  • We may use a Rust version from the Rust beta or nightly channels for new platforms (e.g. we did so for Android, arm64 Windows and arm64 macOS), and later upgrade when that Rust version becomes stable (we may even do so on the Firefox beta branch).

  • We may skip the update (or backout the update) if major problems are encountered (typically, we’ve had to do so because of build problems, crash reporting bustage, or performance issues).

Developer builds

Local developer builds use whatever Rust toolchain is available on the system.

Someone building Firefox can maintain the latest stable Rust with the rustup or mach bootstrap tools, or try other variations.

Minimum Supported Rust Version

We will update the Minimum Supported Rust Version (MSRV) when required.

The MSRV will generally remain unchanged, until a newer version is required by some code.

When that happens, we’ll prefer to update the MSRV to the strict minimum required at that moment (e.g. if we require version 1.47.0, the currently used Rust version is 1.51.0, and a crate needs 1.50.0, we’ll prefer to update the MSRV to 1.50.0 rather than 1.51.0).

The MSRV won’t be updated to a version of Rust that hasn’t been used for Firefox Nightly for at least 14 days.

We expect ESR releases will keep their MSRV, so backporting security fixes may require Rust compatibility work.

Rationale

Historically, the Rust ecosystem quickly required new features provided by new Rust compilers, which made it necessary to update the minimum supported version quite often, and as such, a scheduled update was deemed a better trade-off.

Fast-forward several years, and new Rust compiler releases more rarely sport ground-breaking new features, which has reduced the necessity to update quite significantly.

On the flip side, in some instances, we have had to stick to specific versions of the Rust compiler for extended periods of time because of e.g. regressions, going against the schedule.

Schedule

Here are the Rust versions for each Firefox version.

  • The “Uses” column indicates the version of Rust used to build releases shipped to users.

  • The “MSRV” column indicates the minimum supported Rust version to build the sources.

Firefox Version

Uses

MSRV

Rust “Uses” release date

Toolchain Freeze

Firefox release date

Firefox 115

Rust 1.69.0

1.66.0

2023 April 20

2023 July 4

Firefox 140

Rust 1.86.0

1.82.0

2025 April 3

2025 June 24

Firefox 153

Rust 1.94.0

1.90.0

2026 March 5

2026 July 21

Firefox 154

Rust 1.94.0

1.90.0

2026 March 5

2026 August 18

Estimated

 

 

 

 

 

Firefox 155

Rust 1.95.0

?

2026 April 16

2026 August 6

2026 September 1

Firefox 156

Rust 1.97.0

?

2026 July 9

2026 August 20

2026 September 15

Firefox 157

Rust 1.98.0

?

2026 August 20

2026 September 3

2026 September 29

Firefox 158

Rust 1.98.0

?

2026 August 20

2026 September 17

2026 October 13

Firefox 159

Rust 1.98.0

?

2026 August 20

2026 October 1

2026 October 27

Firefox 160

Rust 1.99.0

?

2026 October 1

2026 October 15

2026 November 10

Firefox 161

Rust 1.99.0

?

2026 October 1

2026 October 29

2026 November 24

Firefox 162

Rust 1.99.0

?

2026 October 1

2026 November 12

2026 December 8