The release of the uutils coreutils project 0.9.0 (Rust Coreutils) has been announced, which develops an analogue of the GNU Coreutils package, written in Rust. The coreutils package includes over a hundred utilities, including sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, and ls. The goal of the project is to create a cross-platform alternative implementation of Coreutils, among other things capable of running on Windows, Redox, and Fuchsia platforms.
Rust Coreutils
is deployed by default in the release of Ubuntu 25.10 and partially in Ubuntu 26.04. Rust Coreutils is also used in 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 license. In addition, the same team of developers is developing Rust analogues of the util-linux, diffutils, findutils, procps, and acl utility sets, as well as the sed and login programs.
I den nye versjonen av Rust Coreutils:
- The compatibility level with the reference test suite of GNU Coreutils was 90.58% (previously 94.74%). A total of 625 tests were successfully executed, which is 5 fewer than the previous version (630). 56 tests failed (previously 21), one test resulted in an error, and 8 tests were skipped (previously 14). The decrease in compatibility level is explained by updating the test suite to the state of GNU Coreutils 9.11 release, which added 25 new tests.
- 44 vulnerabilities identified in an audit conducted by Zellic have been fixed. Most vulnerabilities were caused by discrepancies in behavior with GNU coreutils or a race condition that allows data modification at a point after validation of information but before executing operation on them, for example, substituting a file with a symbolic link between the end of validation and the start of the operation. In the context of using cp, chmod, and mv utilities in system scripts run with root privileges, such vulnerabilities allow copying or overwriting arbitrary files. To protect against race condition vulnerabilities, the project used the uucore::safe_copy module. Information about the vulnerabilities has been published in a separate news post.
- The translation of utilities to the rustix crate package has continued instead of the nix crate package. Utilities id, tr, timeout, sort, wc, tail, cp, who, and factor have been translated to rustix.
Code cleanup from unsafe operations in various utilities has been conducted. - I verktøyene cat, wc, head, tail, yes, cp, tee og unexpand brukes inn-/utdatahåndterere basert på systemanropene splice(), tee() og pipe(), som har muliggjort raskere arbeid ved å unngå unødvendig datakopiering mellom buffere.
- Forbedret kompatibilitet med GNU Coreutils verktøyene numfmt, date, tr, cksum, factor, head, stat og sort.
- Verktøyene ln, dd, mktemp og tty har fått støtte for bygging i WebAssembly-format og bruk av WASI (WebAssembly System Interface).
- Mulighetene er utvidet, problemer er løst og manglende alternativer er lagt til for verktøyene cat, chroot, cksum,
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.
Kilde: opennet.ru
