Byl vydán příspěvek projektu uutils coreutils 0.6.0 (Rust Coreutils), který vyvíjí ekvivalent balíčku GNU Coreutils napsaný v jazyce Rust. Součástí coreutils je více než sto utilit, včetně sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln a ls. Cílem projektu je vytvoření multiplatformní alternativní implementace Coreutils, která bude schopna fungovat na platformách Windows, Redox a Fuchsia.
Rust Coreutils je ve výchozím nastavení aktivován v vydání Ubuntu 25.10 a je používán v distribucích AerynOS (Serpent OS) a Apertis (vyvíjeno společností Collabora). Na rozdíl od GNU Coreutils se implementace v Rustu distribuuje pod permisivní licencí MIT, namísto copyleft licence GPL. Dále stejný tým vývojářů vyvíjí psané na Rust analogy sad utilit util-linux, diffutils, findutils, procps a acl, stejně jako programů sed a login.
V nové verzi Rust Coreutils:
- Bylo dosaženo úrovně kompatibility s referenčním testovacím souborem GNU Coreutils — 96,28 % (bylo 87,75 %). Úspěšně bylo provedeno 622 testů, což je o 56 více než v předchozí verzi (566). 16 (bylo 55) testů bylo neúspěšných, a 7 (bylo 23) testů bylo vynecháno. Nejvýznamnější zvýšení kompatibility bylo zaznamenáno u utilit sort, ls, date, cksum a tail.
- Z utilit date, sort, locale.rs a dalších byl odstraněn kód, ve kterém bylo použito klíčové slovo „unsafe“.
- Odkazy na standardní knihovnu libc byly nahrazeny ekvivalentními ochrannými voláními poskytovanými balíčkem nix.
- Bylo zlepšeno zpracování chyb, byly vyloučeny havarijní ukončení při zápisu do /dev/full.
- V utilitě date byla implementována lokalizace názvů měsíců a dnů, která zohledňuje ICU. Bylo zajištěno formátování hodin a kalendáře s ohledem na místní nastavení.
- V utilitě sort byla zajištěna třídění čísel s oddělovači tisíc a byla implementována podpora parametrů +POS/-POS.
- Do utilitě join byla přidána podpora vlastností lokality „collation“, které umožňují provádět srovnání s ohledem na význam symbolů (například při porovnávání nemusí být brán v úvahu diakritický znak).
- Byla provedena optimalizace výkonu utilit base32, base64, basenc a df.
- V utilitě uniq bylo sníženo spotřeba paměti při práci bez ohledu na velikost písmen.
- V utilitě shuf byl optimalizován číselný výstup a přidána volba „—random-seed“.
- V tsort byla vyloučena potřeba načítání všech vstupních dat do paměti.
- Do utilitě tail byl přidán příznak „—debug“.
- V utilitě chmod byly vyřešeny problémy s rekurzivním prováděním operací a byla přidána volba „—preserve-root“.
- Na unixových systémech byla posílena bezpečnost při procházení obsahu adresářů.
- Do utilit ls, id, mkdir, mkfifo a mknod byla přidána podpora mechanismu mandatorního řízení přístupu SMACK.
- Do systému kontinuální integrace byla přidána kontrola sestavení na 64bitových systémech RISC-V s knihovnou musl.
- Zlepšena funkčnost ve Windows s využitím Cygwin.
- Byly rozšířeny možnosti, odstraněny problémy a přidány chybějící možnosti pro utility arch, base64, basename, cat, chgrp, chmod, chroot, cksum, comm, cp, csplit, date, dd, df, dir, dirname, du, echo, env, expand, expr, fmt, fold, groups, hashsum, head, hostid, id, install, join, kill, ln, logname, ls, mkdir, mkfifo, mknod, mktemp, more, mv, nice, nl, nohup, nproc, numfmt, pr, printenv, printf, ptx, readlink, rm, rmdir, runcon, seq, shred, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, tee, test, timeout, touch, truncate, tsort, uname, unexpand, uniq, uptime, users, wc, yes, ucore, uucore, uudoc.
Zdroj: opennet.ru
