Wydanie uutils 0.3, wersji Rust GNU Coreutils

Projekt uutils coreutils 0.3.0 (Rust Coreutils), będący rozwinięciem pakietu GNU Coreutils, napisanego w języku Rust, został wydany. Coreutils zawiera ponad 100 narzędzi, w tym sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. Celem projektu jest stworzenie wieloplatformowej alternatywy dla Coreutils, która będzie działać na platformach takich jak: Windows, Redox i Fuksja.

Rust Coreutils jest domyślnie włączony w wersji Ubuntu 25.10 i jest używany w dystrybucjach AerynOS (Serpent OS) i Apertis (opracowanym przez Collabora). W przeciwieństwie do GNU Coreutils, implementacja Rusta jest dystrybuowana na licencji MIT, a nie na licencji copyleft GPL. Ten sam zespół programistów opracowuje również oparte na Ruście odpowiedniki pakietów narzędziowych util-linux, diffutils, findutils i procps, a także programy sed i login.

W nowej wersji Rust Coreutils:

  • Wydajność niektórych narzędzi została znacząco poprawiona. Na przykład, w porównaniu z GNU Coreutils, narzędzie sort jest teraz 3.72 razy szybsze w przypadku zwykłego sortowania i 1.46 razy szybsze w przypadku sortowania liczb, base64 jest 1.2 razy szybsze, expand jest 1.8 razy szybsze, unexpand jest 1.5 razy szybsze, nl jest 1.57 razy szybsze, fold jest 1.19 razy szybsze, a uniq -c jest 1.13 razy szybsze.
  • Infrastruktura monitorowania wydajności została utworzona przy użyciu zestawu narzędzi CodSpeed. System ciągłej integracji zapewnia wykrywanie regresji wydajności. Dodano testy wydajności dla 15 narzędzi, w tym sort, ls, uniq, du i base64.
  • W narzędziach rm, du, chmod i chgrp zaimplementowano bezpieczną pracę ze ścieżkami względnymi do katalogów, opartą na wykorzystaniu funkcji openat i unlinkat.
  • Poprawiono bezpieczeństwo dzięki wykorzystaniu pakietu nix crate zamiast niebezpiecznych wywołań libc.
  • Ulepszono obsługę błędów i zbliżono ją do GNU Coreutils w wielu narzędziach.
  • Poprawiono zgodność z Coreutils podczas pracy ze ścieżkami plików zawierającymi i niezawierającymi znaków UTF8.
  • Poprawiona zgodność z pakietem testów porównawczych GNU Coreutils. 532 testy zaliczyły pomyślnie (538 w poprzedniej wersji), 68 (52) zakończyło się niepowodzeniem, a 33 (27) pominięto. Zgłoszony wskaźnik zgodności wynosi 83.91% (w porównaniu z 87.06%). Spadek zgodności wynika z dodania 16 nowych testów do pakietu testów porównawczych.
  • Narzędzie do obsługi dat ma teraz opcję „--reference=file” do wyświetlania czasu modyfikacji pliku. Z powodu braku tej opcji w Ubuntu Skrypt automatycznej kontroli aktualizacji przestał działać. Date skonsolidował również swoją logikę analizy czasu, poprawił zgodność z GNU date poprzez implementację opcji „-d” oraz dodał flagę „--resolution” do wyświetlania danych o rozdzielczości czasu.
  • Zaimplementowano opcje: „basenc -base58”, „id -a”, „ls -f”, „pinky -lookup”, „realpath -E”, „rm -progress”.
  • Rozszerzono możliwości, naprawiono błędy i dodano brakujące opcje dla narzędzi base64, basenc, chgrp, chmod, cksum, cp, csplit, date, df, dirname, du, expand, expr, fold, hashsum, hostname, id, install, ln, ls, mv, nl, nohup, numfmt, od, pinky, ptx, realpath, rm, seq, sort, stat, stdbuf, stty, tail, timeout, touch, tsort, unexpand, uniq, uname, wc, who, uucore.

Źródło: opennet.ru

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster