The uutils coreutils 0.9.0 (Rust Coreutils) project, a development of the GNU Coreutils package, written in Rust, has been released. coreutils includes over 100 utilities, including sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, and ls. The project's goal is to create a cross-platform alternative to Coreutils, capable of running on platforms including Windows, Redox and Fuchsia.
Rust Coreutils
enabled by default in the release Ubuntu 25.10 and partly in Ubuntu April 26.04. Rust Coreutils is also used in the AerynOS (Serpent OS) and Apertis (developed by Collabora) distributions. Unlike GNU Coreutils, the Rust implementation is distributed under the permissive MIT license, instead of the copyleft GPL. Additionally, the same team of developers is developing Rust-based equivalents of the util-linux, diffutils, findutils, procps, and acl utility suites, as well as the sed and login programs.
In the new version of Rust Coreutils:
- The compatibility rate with the GNU Coreutils benchmark suite was 90.58% (down from 94.74%). 625 tests were successfully completed, 5 fewer than in the previous version (630). 56 tests failed (down from 21), one test resulted in an error, and 8 tests were skipped (down from 14). The decrease in compatibility is due to updating the benchmark suite to the state of GNU Coreutils 9.11, which added 25 new tests.
- Forty-four vulnerabilities identified during an audit conducted by Zellic have been fixed. Most of these vulnerabilities are caused by behavioral divergences with GNU coreutils or race conditions that allow data to be modified after the information has been verified but before an operation is performed. For example, a file can be replaced with a symbolic link between the completion of the verification and the start of the operation. When using the cp, chmod, and mv utilities in system scripts run with root privileges, these vulnerabilities allow arbitrary files to be copied or overwritten. To protect against race conditions, the project uses the uucore::safe_copy module. Information about these vulnerabilities is published in a separate news item.
- The migration of utilities to the rustix crate package from the nix crate package has continued. The following utilities have been migrated to rustix: id, tr, timeout, sort, wc, tail, cp, who, and factor.
The code was cleaned from unsafe operations in various utilities. - The cat, wc, head, tail, yes, cp, tee, and unexpand utilities use input/output handlers based on the splice(), tee(), and pipe() system calls, which speed up operation by eliminating unnecessary copying of data between buffers.
- Improved compatibility with GNU Coreutils for the numfmt, date, tr, cksum, factor, head, stat, and sort utilities.
- The ln, dd, mktemp, and tty utilities now support building in WebAssembly format and using the WASI (WebAssembly System Interface) interface.
- Expanded capabilities, fixed issues, and added missing options for the cat, chroot, and cksum utilities.
cp, date, dd, df, dirname, du, echo, env, expr, factor, fmt, head, id, install, join, ln, logname, ls, md5sum, mkdir, mknod, mktemp, more, mv, nl, nohup, nproc, numfmt, od, paste, pinky, pr, realpath, rm, rmdir, shred, sort, split, stat, stdbuf, stty, sum, sync, tail, tee, timeout, touch, tr, tty, unexpand, uniq, uptime, wc, who, yes.
Source: opennet.ru
