Rust Coreutils 0.12 is now available, bringing many compatibility fixes, with this release focused on issues reported by Ubuntu users and maintainers.
The project provides a Rust implementation of the familiar GNU Coreutils commands, and Ubuntu now ships it as the default Coreutils implementation. According to the developers, version 0.12 addresses all issues Ubuntu asked them to prioritize during this cycle.
Among them is a bug that could cause data loss when running install -D in parallel, plus fixes for du on 32-bit systems, ACL handling in ls, name collisions with recursive cp, and recursive chmod behavior involving symbolic links.
A large part of the release focuses on matching GNU Coreutils behavior more closely. Several commands now correctly accept values beginning with a hyphen where GNU does, including options used by csplit, paste, join, stat, and numfmt.
There are also many command-specific fixes. rm no longer crashes when dealing with deeply nested directory structures, while sort -n now applies numeric sorting to the selected key rather than the entire line. cp gets fixes for attribute handling, truncate now supports --io-blocks, and date accepts multiple --reference options.
Other utilities receiving GNU compatibility corrections include basename, realpath, ln, printf, test, echo, uniq, chgrp, factor, expr, od, tty, tsort, and pathchk.
The project’s GNU test-suite results have improved slightly. For reference, uutils Coreutils 0.12 currently passes 653 tests, with 21 failures and no errors. Counting only tests that run, the developers report a 96.9% pass rate, their best result so far.
Regarding cross-platform support, on Windows, nice, nohup, and hostid can now be built, while several utilities have moved to safer standard Rust APIs. The uucore filesystem layer on Windows has been rewritten using safe Win32 wrappers.
Additional work landed for AIX, Haiku, GNU Hurd, NetBSD, WASI, macOS, and OpenHarmony targets.
Finally, on the performance side, starting with this release, the maintainers say that when a uutils utility is significantly slower than its GNU counterpart, it is now considered a bug rather than a potential optimization.
For additional details, see the changelog.
