Headstart Patches Claim Rust Builds Up to 54% Faster, a Fix for a 2019 Dead End
Software / news
Headstart Patches Claim Rust Builds Up to 54% Faster, a Fix for a 2019 Dead End
A new rustc and Cargo patch series starts dependent crates before their dependencies finish type-checking. Every number so far comes from its own authors.

A patch series called headstart claims to cut clean cargo check times by up to 54% and cargo build times by up to 42% on a 16-core machine, by letting a Rust crate start compiling before the crates it depends on finish type-checking. The numbers come from the project's own README and its authors say it is "not yet ready to merge."
The work sits in a GitHub repository created on September 27, 2026 by an organisation called The Powderworks Agentic Code Consortium. It reached Hacker News on October 4 with 148 points and 42 comments, while the repository itself had 55 stars and no licence file listed in GitHub's metadata.

What headstart changes in the build order
Today every crate waits for its dependencies to be fully checked, function bodies included, before it starts. A dependent does not need those bodies to type-check itself. It needs the interface, which lives in the .rmeta metadata file.
Headstart adds a -Zearly-metadata flag to rustc across 6 patches, which writes an early metadata file once item interfaces are checked, and a -Zheadstart flag to Cargo across 3 more, which starts dependents on that file. For cargo check, dependents run to completion on it. For cargo build, they do their analysis early, then wait for full metadata before generating code, handing back their job slot while they wait.
The numbers, and who produced them
The README says clean builds of 13 real projects, including rust-analyzer, zed, bevy, lemmy and polars, are up to 54% faster for cargo check and up to 42% for cargo build on a 16-core machine, with none slower. These are author-supplied figures, not independent measurements.
- rust-analyzer check, 16 cores54 %
- rust-analyzer build, 16 cores42 %
- codex-rs build, 16 cores37 %
- rust-analyzer check, 4 cores24 %
Source: PowderworksCode/headstart README, author-supplied, accessed 2026-10-06
The last bar is the one to read first. The README says the gain comes from cores a build would otherwise leave idle, so it shrinks on smaller machines: on 4 cores rust-analyzer's check is 24% faster and its build 13 to 15% faster, and wide builds "come out even." The project's readiness document adds that a saturated machine spends 3 to 7% more rustc CPU time, measured on bevy and typst.
The largest test case is codex-rs, the Rust workspace of OpenAI's open-source Codex agent, with 1,379 compilations. On 16 cores the README reports a 37% faster clean build, because the workspace's own crates compile in a chain with the machine mostly idle.
Why a 2019 attempt stopped at 1.07x
The idea is not new. On September 3, 2019, Nicholas Nethercote opened rust-lang/rust pull request 64112, "Move metadata generation before analysis." His own summary was blunt: "Unfortunately it's not much of a win." The biggest speed-up he saw was 1.07x, against 1.79x for the pipelining already in the compiler, and he wrote that his "current inclination is to abandon the effort." The pull request was closed on September 16, 2019.
| Attempt | Best result reported | Setting |
|---|---|---|
| 2019 PR 64112 (Nethercote) | 1.07x on syn, optimised | rustc-perf multi-crate benchmarks, one Linux box |
| 2026 headstart (authors) | 54% faster check | 13 real projects, 16 cores |
The two rows are not comparable: different hardware, different projects and different years of compiler work. Headstart's readiness document says the idea "answers the objection that stopped the 2019 attempt".
What the authors say is unfinished
The readiness document is candid. Its verdict reads "Ready for the design conversation, and for a draft PR to show with it. Not yet ready to merge." It lists open items reviewers will raise. The swap from early to full metadata is only checked by a hand-kept list of queries under -Zearly-metadata-verify. Only Cargo can drive it, because the loader assumes the rlib sits next to the .rmeta, which Bazel and Buck2 sandboxes do not guarantee.
The compiler side needs a major change proposal. The next step the authors name is a design post to the compiler and Cargo teams and a fresh benchmark run on 8-core and 16-core machines. Another Rust toolchain change landed on October 5: mold 3.0 rewrote its C++ in Rust. OpenAI's other developer-facing story this site covered is Wikimedia's account of OpenAI agents editing its wikis.
Sources
More in Software
- 01TesterArmy's e2e Gained 1,398 Stars in a Day. Its Docs Publish No Accuracy FiguresThe Apache-2.0 framework lets an agent drive an app from a plain-English goal, then replays the recorded steps. The one independent benchmark of its decision-model option tested a different job.
- 02RemoveMacAI Reclaims 12GB From macOS 27 Through a Blocked PortThe MIT-licensed tool by developer Om Lahore installs a configuration profile and deletes Apple's on-device models, because macOS 27 offers no single switch that does either.
- 03Mold 3.0 Rewrites the Linker in Rust and Promises Identical OutputThe first Rust release, published Oct. 5 by the project's author, is billed as a drop-in for the last C++ version, 2.42.1, and drops the oneTBB dependency.
- 04Gleam 1.19.0 Skips Erlang Source, and a Nightly Broke compile-packageThe Oct. 5 release compiles to Erlang's abstract format for faster builds and exact stack traces, but build tools that scan for .erl files had to be rescued by a Sept. 19 fix.