Mold 3.0 Rewrites the Linker in Rust and Promises Identical Output
Software / news
Mold 3.0 Rewrites the Linker in Rust and Promises Identical Output
The 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.

The mold linker shipped version 3.0.0 on Oct. 5, the first release written in Rust after 2.42.1 closed out the C++ line. The release notes, posted by the project's author under the handle rui314, call it "a drop-in replacement for 2.42.1" that "accepts the same command-line options, supports the same target architectures, and produces the same output except for the bug fixes."
A linker is the last step of a build: it stitches compiled object files into one executable, and on a large C++ project it can take longer than the compile. Mold exists to make that step fast, and its README lists the targets it handles: x86-64, i386, ARM 32/64, RISC-V 32/64, PowerPC 32/64, s390x, LoongArch 32/64, SPARC64, m68k and SH-4. The README says it has been in production use since 2021 and carries an MIT licence.
What changes for people who build it
The build system moves from CMake to Cargo, and the minimum toolchain is Rust 1.95 plus a C compiler. Phoronix, which covered the release the same day, reports that the Intel oneTBB threading library is no longer a dependency. The release notes list a second removal: the 8 GiB of virtual address space the C++ version reserved up front.
The release notes say the project tested "every supported target" against a broad range of real-world workloads, including building all Gentoo packages, and found no regressions. That is the project's own claim; neither source shows the comparison data.

What the speed claims actually say
Mold's headline numbers sit in the README, not in the 3.0 release notes, and they are the project's own measurements from August 2026 on an AMD Ryzen Threadripper 7980X. The README says mold links 4.9 times faster than LLVM's lld at the median, and 1.9 times faster than the newer Rust linker wild. The release notes say performance is "on par with" 2.42.1, so those figures describe the C++ lineage and the Rust release is only promised to match them.
- Chromium 145, lld16.64 s
- Chromium 145, mold1.65 s
- TensorFlow 2.21, lld50.73 s
- TensorFlow 2.21, mold3.15 s
Source: mold README, github.com/rui314/mold, accessed 2026-10-05
| Debug build | lld | mold | Ratio |
|---|---|---|---|
| Chromium 145 | 16.64 s | 1.65 s | 10.1x |
| TensorFlow 2.21 | 50.73 s | 3.15 s | 16.1x |
Why Rust, and the gap that remains
The one behavioural change the release notes highlight is safety on bad input. A corrupted object file could make the C++ linker read memory out of bounds and crash with a segmentation fault; in 3.0 those reads are bounds-checked and the linker stops with a panic instead.
The larger ambition, from the release page: close the remaining gaps with GNU ld, particularly linker script support, "and to pave the way for mold to be adopted as the default linker in Linux distributions." Linker scripts are the files kernels and embedded firmware use to dictate memory layout, which is why they matter for that goal. Related Linux toolchain work has been moving the same direction, as with Valve's driver fixes for old AMD GPUs, and Rust's own compiler team is chasing build time from the other end in the Headstart patch set for cargo check.
The README names Mercury, Cybozu, Emerge Tools, G-Research, Signal Slot Inc. and GlareDB as corporate sponsors. Whether any distribution switches its default will be decided on those linker scripts, and neither source gives a date for that work.
Sources
More in Software
- 01VB6 Studio Web 0.6.0 Rebuilds Visual Basic 6 in a Browser, Minus COM and OCXWieslaw Soltes's MIT-licensed project reads .vbp project files and exports standalone HTML, but its README rules out the native components that classic VB6 programs lean on.
- 02REA Hands Coding Agents a Disassembler, and 2,963 Stars Followed in a DayThe MIT-licensed toolkit from a developer called morluto wires Ghidra, Hopper and a JavaScript analyser into agents over MCP, and its README pitches rebuilding a feature you have only seen running.
- 03Polars 2.0 Makes Streaming the Default and Stops Promising Row OrderThe release, announced Oct. 6 by creator Ritchie Vink, adds no headline feature, but a join or group-by that used to return rows in input order may now return them in any order.
- 04Cloudflare's Web Search API Passes Through Exa, Linkup and Ceramic.ai PricesThe beta, announced Oct. 2 through AI Gateway, adds no markup, so the bill depends on which provider string a developer types and the launch post prints no price.