Image: GitHub
Why it mattersA linker runs on every build, so a safer version at the same speed means fewer segfaults on broken object files without a slower CI.
A fast linker rebuilt in a different language with no speed loss is unusual, because a rewrite normally gives something back. Rui Ueyama released mold 3.0.0 on 5 October, replacing the C++ codebase with a Rust port. The release notes say version 2.42.1 was the final C++ release, and that the Rust version is a drop-in replacement for it.
The release notes say linking performance remains on par with 2.42.1. The command-line options are the same, the supported target architectures are the same, and the output is the same except for bug fixes. A team that already uses mold does not have to change build scripts.
What the rewrite changes
The release notes list two visible differences. The build system moved from CMake to Cargo, so building mold from source now needs Rust 1.95 or later and a C compiler. The oneTBB dependency was dropped, and mold now statically links mimalloc 3.5.3 instead.
The safety claim is the one that matters at run time. The release notes say the C++ version could segfault on corrupted input files, and the Rust version stops with a panic at the faulty access instead. That is the kind of fault that shows up on a broken object file in CI, so a panic with a stack trace is a better failure than a signal with no message.
Alongside the rewrite, the release notes list roughly fifty bug fixes across AArch64, ARM32, PPC64, RISC-V, and LoongArch, covering linker scripts, COMDAT groups, symbol versioning, and relocation handling.
What a team using mold does now
The install path does not change. Package maintainers who ship mold will pick up 3.0.0, and projects that already set the linker to mold through -fuse-ld=mold keep that line. Teams that build mold from source have to install a current Rust toolchain, which they did not before.
The one thing that could regress is a specific target or linker script that depended on a bug the rewrite did not reproduce. The release notes list the bug fixes rather than call out behavioural changes, so a CI run before and after upgrading is the honest way to catch any difference.
The sponsorship note at the end of the release lists more than fifteen organizations and individuals paying thirty-two dollars a month or more, which is how the maintainer funds the work. The project remains MIT-licensed, and the repository on GitHub is still at rui314/mold.
The rewrite is also a case of the "no slower, but safer" rewrite that the Rust side has argued for in system tools for a decade. The release notes make the case in a single sentence by stating the panic-versus-segfault behaviour as the practical result.
Source
This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.
Get AI News in your inbox
New developer tools, model and agent releases, and how teams are actually using them to release software. Short, and only when there is something worth reading.

