Mold Linker Version 3.0.0 Release – Rewritten in Rust
Points and comments are a snapshot, not live.
Mold linker 3.0.0 rewrites the C++ codebase in Rust, maintaining drop-in compatibility and performance.
Mold 3.0.0 is the first Rust release of the high-speed linker, rewritten from C++ as announced in v2.42.1. It aims to close compatibility gaps with GNU ld, particularly linker scripts, to become the default linker in Linux distributions. The Rust version provides bounds-checked memory safety on corrupted inputs. Build system changed from CMake to Cargo, requiring Rust 1.95+ and a C compiler. Dependencies on oneTBB are removed; mimalloc is statically linked. Performance remains on par with v2.42.1. The release includes numerous bug fixes for crashes, non-deterministic output, and architecture-specific issues across AArch64, ARM32, RISC-V, LoongArch, PPC32/64, SH4, SPARC64, m68k, and i386 targets. Compatibility was verified by building all Gentoo packages and running test suites on every supported target. Sponsors include Cybozu, SAP, and Mercedes-Benz Group.
What commenters are saying
Commenters primarily discuss the motivation for the C++-to-Rust rewrite. Many note that while fixing C/C++ memory safety is theoretically possible, it is extremely difficult to do reliably, especially for concurrent code. The author appears to have used Claude as a coauthor for parts of the rewrite, which several commenters note was completed remarkably quickly-some estimate three weeks, though the author suggests the work was mostly done before announcing it. Some commenters debate whether Rust's safety guarantees are meaningfully different from Zig's, with one camp arguing Rust provides compile-time memory safety that Zig's runtime safety does not.