A liberazione di u prughjettu posixutils-rs 0.2.1 hè stata publicata, destinata à sviluppà in a lingua Rust una cullizzioni di utilità di linea di cumanda citate in u standard POSIX è risponde à i so bisogni (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed, etc.). Durante u sviluppu, ogni volta chì hè pussibule, i pacchetti di casse esistenti sò usati. U codice posixutils-rs hè distribuitu sottu a licenza MIT.
U prugettu hè focu principarmenti nantu à ottene u rispettu di i requisiti di a specificazione POSIX.2024 è ùn hà micca pensatu di furnisce a cumpatibilità cù l'utilità GNU, a funziunalità di quale hè percive da l'autori cum'è senza ragiunamentu. Tuttavia, posixutils-rs pensa à implementà l'opzioni di utilità GNU avanzate più populari truvate in i script esistenti.
Differenze da u prughjettu uutils, chì sviluppa l'implementazione di GNU Coreutils in Rust, includenu un scopu più largu di utilità, cumprese, frà altre cose, a creazione di cumpunenti di u sistema POSIX cum'è vi, awk, bc, m4, cron è u compilatore c99, è ancu un approcciu minimalisticu, chì implica furnisce solu l'inseme minimu necessariu di opzioni definite in a specificazione POSIX o chì sò problematiche per fà senza. I prugrammi in a suite posixutils-rs sò inizialmente furniti cum'è codice autònumu chì pò esse usatu in altri prughjetti.
Attualmente, 55 utilità sviluppate da u prugettu cumplenu cù POSIX è sò in a tappa di copertura di prova, 22 utilità furnisce a funziunalità necessaria (ma a copertura di prova ùn hè ancu stata implementata), 20 sò in u stadiu di prughjettu, è u travagliu nantu à 44 utilità ùn hè micca stata implementata. ancora principiatu. Trà l'utilità cù funziunalità implementata: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Trà l'utilità, u travagliu chì ùn hè micca iniziatu: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
I cambiamenti in a nova versione includenu l'aghjunzione di implementazioni di l'utilità awk, m4, ps, realpath, join, time, fuser è gencat, è ancu supportu iniziale per travaglià in ambienti basati nantu à a libreria musl C è a prestazione di u ftw. biblioteca per a corsa di traversata di l'arburu di l'annuariu protetta da u statu.
Inoltre, pudemu nutà l'annunziu di u prughjettu rav1d, chì sviluppa un decoder d'altu rendiment per u formatu di codificazione di video AV1, scrittu in a lingua Rust. U sviluppu hè realizatu porting u codice di decoder di a biblioteca dav1d, chì hè carattarizatu da un altu rendiment, à Rust. U portu preparatu hè cumplettamente cumpatibile cù l'API di biblioteca dav1d. L'scelta di portà una libreria esistente invece di scrive a nostra propria versione hè spiegata da a vulintà di utilizà un decoder digià pruvata è pruvata cum'è una basa per evità pussibuli prublemi di cumpatibilità è piglià in contu tutte e intricacies di travaglià cù u furmatu AV1.
In a so forma attuale, l'implementazione preparata di rav1d hè 6% daretu à dav1d in u rendiment, ma in u futuru, dopu l'ottimisazione di u codice, hè pianificatu per ottene parità in u rendiment. Per ottene un altu rendiment, hè stata aduprata un approcciu in u quale e funzioni basiche per a decodificazione di i valori primitivi sò implementate in assembler in forma di blocchi insicuri (codice di assemblea da dav1d hè utilizatu), i dati in quale hè ricevutu dopu a verificazione cù l'analisi di flussu. funzioni scritte in Rust (sperienza passata in identificà vulnerabilità in decoders video mostra chì i prublemi principarmenti nascenu in u codice parsing furmatu di altu livellu, piuttostu cà in l 'operazioni dati bassu livellu).
Source: opennet.ru
