Ažuriranje na GNU Coreutils, prepisano u Rustu

Predstavljeno je izdanje alata uutils coreutils 0.0.12 u okviru kojeg se razvija analogni paket GNU Coreutils, prepisan na Rust jeziku. Coreutils dolazi sa preko stotinu uslužnih programa, uključujući sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. U isto vrijeme, izdat je paket uutils findutils 0.3.0 sa implementacijom u Rust uslužnih programa iz GNU Findutils skupa (find, locate, updatedb i xargs).

Razlog za kreiranje projekta i korištenje Rust jezika je želja za stvaranjem alternativne implementacije Coreutils-a i Findutil-a na više platformi, sposobne za rad na Windows, Redox i Fuchsia platformama, između ostalih. Još jedna važna razlika između uutil-a je da se distribuira pod MIT Permissive License, umjesto GPL copyleft licence.

Trenutno je implementacija 88 uslužnih programa u potpunosti usklađena sa GNU Coreutilsom. Pojedinačne greške su zabilježene u 18 uslužnih programa, uključujući cp, dd, date, df, install, ls, više, sortiranje, split, tail i test. Samo uslužni program stty ostaje nepromijenjen. Prilikom prolaska testnog paketa iz GNU Coreutils projekta, uspješno je izvršeno 214 testova, ali Rust analog još ne prolazi 313 testova. Istovremeno, intenzitet razvoja projekta je primjetno povećan - dodaje se 400-470 zakrpa mjesečno od 20-50 programera umjesto 30-60 od 3-8 programera prije godinu dana.

Ažuriranje na GNU Coreutils, prepisano u Rustu

Među najnovijim dostignućima, ističe se optimizacija performansi - u trenutnom stanju, mnogi uslužni programi, kao što su head i cut, značajno su superiorniji u performansama u odnosu na opcije iz GNU Coreutilsa. Pokrivenost testnog paketa je proširena sa 55% na 75% cjelokupnog koda (80% je dovoljan cilj). Kod je refaktoriran kako bi se pojednostavilo održavanje, na primjer, rukovanje greškama je objedinjeno u različitim programima, a kod za rad sa pravima pristupa je kombinovan u chgrp i chown. Dodane su brojne promjene kako bi se poboljšala kompatibilnost sa GNU Coreutils-om.

Planovi za budućnost uključuju implementaciju uslužnog programa stty, nastavak rada na poboljšanju kompatibilnosti s GNU Coreutils, dodavanje optimizacija za smanjenje veličine izvršnih datoteka, kao i nastavak eksperimenata na korištenju uutils uslužnih programa u Debianu i Ubuntu umjesto GNU Coreutils i GNU Findutils (jedan od glavnih programera uutil-a je prethodno radio na projektu izgradnje Debian GNU/Linuxa koristeći Clang kompajler). Dodatno, napominje se priprema paketa uutils-coreutils za macOS, eksperimenti sa zamjenom GNU Coreutils-a sa uutils coreutils u NixOS-u, namjera da se uutils coreutils koristi po defaultu u Apertis distribuciji i prilagođavanje uutils postavljenih za Redox OS.

izvor: opennet.ru

Dodajte komentar