- Rust Coreutils 0.5.0 reaches 88 percent GNU compatibility
The uutils project has released version 0.5.0 of its Rust Coreutils. The reimplementation of classic Unix command-line programs written in Rust now achieves 87.75 percent compatibility with the GNU test suite – an increase of almost two percentage points compared to version 0.4.0. Out of a total of 645 tests, the Rust Coreutils now pass 566, while 55 fail, 23 are skipped, and one leads to an error.
The …
- Rust Coreutils 0.5.0 reaches 88 percent GNU compatibility
The uutils project has released version 0.5.0 of its Rust Coreutils. The reimplementation of classic Unix command-line programs written in Rust now achieves 87.75 percent compatibility with the GNU test suite – an increase of almost two percentage points compared to version 0.4.0. Out of a total of 645 tests, the Rust Coreutils now pass 566, while 55 fail, 23 are skipped, and one leads to an error.
The developers have updated the reference test suite from GNU Coreutils 9.8 to 9.9, adding eleven new tests. Despite these additional checks, 22 more tests were successfully completed. Improvements in the utilities fold, cksum, install, numfmt, and seq are particularly noteworthy. The fold tool now supports combining Unicode characters for correct text wrapping, while cksum has been merged with hashsum, now offering a unified checksum function.
Platform support expanded
With version 0.5.0, the project significantly expands its platform support. OpenBSD has been integrated into the CI pipeline, Redox OS support has been reactivated, and Cygwin support in the uucore library has been improved. As a result, ten previously skipped tests can now be executed. The Rust Coreutils officially run on Linux distributions such as Ubuntu 25.10, FreeBSD, OpenBSD, Windows via Cygwin, and the experimental operating system Redox.
Canonical had already announced that it would use the Rust Coreutils as standard in Ubuntu – primarily due to Rust’s advantages in terms of memory safety. Version 0.3.0 had already shown that the sort tool operates up to 3.7 times faster than its GNU counterpart in CPU-intensive scenarios – other tools like expand (1.8×) or nl (1.57×) also show significant speed gains over their GNU counterparts. For I/O-bound operations, the differences are smaller.
Still 12 percent to full compatibility
Despite the progress, challenges remain. Of the 55 failed tests, some concern critical edge cases in tools like cksum (crc32b with the --raw flag), od (floating-point operations), and chroot. On GitHub, the project lists around 380 open issues dealing with remaining incompatibilities. For administrators considering production use, extensive testing of their own scripts is recommended – especially those with GNU-specific flags or unusual option combinations.
Rust’s security advantages are evident in the Coreutils: memory errors such as buffer overflows and insecure path traversal operations are a thing of the past. Tools like chmod already use secure traversal methods. However, critics warn of new classes of errors that could arise from Rust-specific ownership semantics. Unlike the GNU Coreutils, which have been hardened over decades, the Rust variant is still comparatively young.
Six new contributors participated in version 0.5.0. The project calls for translations via Weblate and asks for support through GitHub Sponsors. The maintainer base includes established developers such as Sylvestre Ledru from Debian and Daniel Hofstetter, who explained the project’s long-term goals in an iX interview.
For distributions, the question of packaging arises: Ubuntu 25.10 uses the Rust Coreutils by default; users can revert to the GNU variants by typing apt purge coreutils-from-uutils. FreeBSD offers a port via FreshPorts. The MIT license of the Rust Coreutils is compatible with the GPL of the GNU Coreutils, allowing for seamless integration into distributions.
Download binaries for version 0.5.0 are available on the project website and via GitHub releases. Users should consult the test coverage documentation and check critical workflows before deploying in production.
(fo)
Don’t miss any news – follow us on Facebook, LinkedIn or Mastodon.
This article was originally published in German. It was translated with technical assistance and editorially reviewed before publication.