Përditësimi i GNU Coreutils i rishkruar në Rust

Prezantohet lëshimi i paketës së veglave uutils coreutils 0.0.12, brenda së cilës po zhvillohet një analog i paketës GNU Coreutils, i rishkruar në gjuhën Rust. Coreutils vjen me mbi njëqind shërbime, duke përfshirë sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln dhe ls. Në të njëjtën kohë, paketa uutils findutils 0.3.0 u lëshua me një implementim në Rust të shërbimeve nga grupi GNU Findutils (gjeni, lokalizon, përditësoib dhe xargs).

Arsyeja e krijimit të projektit dhe përdorimit të gjuhës Rust është dëshira për të krijuar një zbatim alternativ ndër-platformë të Coreutils dhe Findutils, i aftë për të ekzekutuar në platformat Windows, Redox dhe Fuchsia, ndër të tjera. Një tjetër ndryshim i rëndësishëm midis uutils është se ai shpërndahet nën Licencën Lejuese MIT, në vend të licencës GPL copyleft.

Aktualisht, zbatimi i 88 shërbimeve është plotësisht i barabartë me GNU Coreutils. Të metat individuale vërehen në 18 shërbime, duke përfshirë cp, dd, date, df, install, ls, more, sort, split, tail dhe test. Vetëm shërbimi stty mbetet i pazbatuar. Kur kaloni paketën e testimit nga projekti GNU Coreutils, 214 teste ekzekutohen me sukses, por analogu Rust nuk i kalon ende 313 teste. Në të njëjtën kohë, intensiteti i zhvillimit të projektit është rritur ndjeshëm - 400-470 arna shtohen në muaj nga 20-50 zhvillues në vend të 30-60 nga 3-8 zhvillues një vit më parë.

Përditësimi i GNU Coreutils i rishkruar në Rust

Ndër arritjet më të fundit, vërehet optimizimi i performancës - në gjendjen aktuale, shumë shërbime, të tilla si koka dhe prerja, janë dukshëm më të larta në performancë ndaj opsioneve nga GNU Coreutils. Mbulimi i grupit të testimit është zgjeruar nga 55% në 75% të të gjithë kodit (80% është një objektiv i mjaftueshëm). Kodi është rifaktoruar për të thjeshtuar mirëmbajtjen, për shembull, trajtimi i gabimeve është unifikuar në programe të ndryshme dhe kodi për të punuar me të drejtat e aksesit është kombinuar në chgrp dhe chown. Ndryshime të shumta janë shtuar për të përmirësuar përputhshmërinë me GNU Coreutils.

Planet për të ardhmen përfshijnë zbatimin e programit stty, punën e vazhdueshme për të përmirësuar përputhshmërinë me GNU Coreutils, shtimin e optimizimeve për të zvogëluar madhësinë e skedarëve të ekzekutueshëm, si dhe eksperimente të vazhdueshme për përdorimin e shërbimeve uutils në Debian dhe Ubuntu në vend të GNU Coreutils dhe GNU. Findutils (një nga zhvilluesit kryesorë të uutils ka punuar më parë në një projekt për të ndërtuar Debian GNU/Linux duke përdorur përpiluesin Clang). Për më tepër, vërehet përgatitja e paketës uutils-coreutils për macOS, eksperimentet me zëvendësimin e GNU Coreutils me uutils coreutils në NixOS, synimi për të përdorur uutils coreutils si parazgjedhje në shpërndarjen Apertis dhe përshtatja e uutils të vendosur për Redox OS.

Burimi: opennet.ru

Shto një koment