posixutils-rs 0.2.1 項目已發布。該專案旨在開發一系列符合 POSIX 標準並滿足其要求的 Rust 命令列實用程式(cp、mv、awk、make、vi、find、sort、wc、xargs、sh、m4、sed 等)。在開發過程中,我們會盡可能使用現有的 crate 套件。 posixutils-rs 代碼遵循 MIT 許可證。
該專案主要致力於實現 POSIX.2024 規範的要求,並不打算提供與 GNU 實用程式的兼容性,作者認為 GNU 實用程式的功能過於臃腫。然而,posixutils-rs 計劃實現現有腳本中最受歡迎的高級 GNU 實用程式選項。
與 uutils 專案(該專案開發了基於 Rust 的 GNU Coreutils 實作)的不同之處在於,posixutils-rs 的實用程式範圍更廣,其中包括創建 POSIX 規範的系統元件,例如 vi、awk、bc、m4、cron 和 c99 編譯器;此外,還提供了 Pposixutils-rs.規範中定義的最少必要選項集,否則使用起來會有問題。 posixutils-rs 程式集最初以獨立程式碼的形式提供,可用於其他專案。
目前,該專案開發的 55 個實用程式符合 POSIX 標準並處於測試覆蓋階段,22 個實用程式已實現所需功能(但尚未實現測試覆蓋),20 個實用程式處於草案版本階段,另有 44 個實用程式的開發工作尚未開始。已實作功能的實用程式包括:awk、basename、bc、cp、cut、chown、date、diff、file、find、grep、ls、nice、ps、sort、strings、tail、tr、tty、wc、uniq。尚未開始開發的實用程式包括:crontab、c17、cflow、ctags、gettext、ed、ex、iconv、lex、locale、mailx、make、patch、pax、sed、sh、sccs、yacc、uucp 和 vi。
新版本的變化包括增加了 awk、m4、ps、realpath、join、time、fuser 和 gencat 實用程式的實現,以及在基於 musl C 庫的環境中工作的初步支援和提供用於具有競爭安全性的目錄樹遍歷的 ftw 庫。
此外,我們注意到 rav1d 專案的發布,該專案旨在開發一款基於 Rust 語言編寫的高效能 AV1 視訊編碼格式解碼器。開發過程將以高效能著稱的 dav1d 函式庫的解碼器程式碼移植到 Rust 語言。移植後的版本與 dav1d 庫 API 完全相容。我們之所以選擇移植現有程式庫而不是自行開發,是因為我們希望以已經驗證和測試過的解碼器為基礎,從而避免可能出現的兼容性問題,並兼顧 AV1 格式處理過程中的各種複雜細節。
就目前形式而言,rav1d 的預實現在效能方面比 dav6d 慢 1%,但未來計劃在程式碼最佳化後實現效能對等。為了實現高效能,我們採用了一種方案,即將解碼原始值的基本函數以不安全區塊的形式用彙編語言實現(使用了 dav1d 的彙編程式碼),其中的資料由 Rust 編寫的串流解析函數進行檢查後接收(過去識別視訊解碼器漏洞的經驗表明,問題主要出現在高階格式解析程式碼中,而不是低階資料操作)。
來源: opennet.ru
