Rustで書き直されたGNU Coreutilsのアップデート

uutils coreutils 0.0.12 ツールキットのリリースが発表され、その中で Rust 言語で書き直された GNU Coreutils パッケージの類似物が開発されています。 Coreutils には、sort、cat、chmod、chown、chroot、cp、date、dd、echo、hostname、id、ln、ls を含む 0.3.0 を超えるユーティリティが付属しています。 同時に、GNU Findutils セット (find、locate、updatedb、xargs) のユーティリティを Rust で実装した uutils findutils XNUMX パッケージがリリースされました。

プロジェクトを作成し、Rust 言語を使用する理由は、Windows、Redox、Fuchsia プラットフォームなどで実行できる、Coreutils と Findutils のクロスプラットフォームの代替実装を作成したいという願望です。 uutil 間のもう XNUMX つの重要な違いは、GPL コピーレフト ライセンスではなく、MIT Permissive License に基づいて配布されていることです。

現在、88 のユーティリティの実装が GNU Coreutils と完全に同等になっています。 cp、dd、date、df、install、ls、more、sort、split、tail、test を含む 18 のユーティリティで個別の欠陥が指摘されています。 stty ユーティリティのみが未実装のままです。 GNU Coreutils プロジェクトのテスト スイートに合格すると、214 個のテストが正常に実行されますが、Rust アナログはまだ 313 個のテストに合格していません。 同時に、プロジェクト開発の強度は著しく増加しており、400 年前には 470 ~ 20 人の開発者によって 50 ~ 30 件のパッチが追加されていましたが、60 ~ 3 人の開発者によって毎月 8 ~ XNUMX 件のパッチが追加されています。

Rustで書き直されたGNU Coreutilsのアップデート

最新の成果の中で、パフォーマンスの最適化が注目されています。現在の状態では、head や Cut などの多くのユーティリティは、GNU Coreutils のオプションよりもパフォーマンスが大幅に優れています。 テスト スイートのカバレッジは、全コードの 55% から 75% に拡大されました (80% で十分な目標です)。 コードはメンテナンスを簡素化するためにリファクタリングされています。たとえば、エラー処理がさまざまなプログラムで統合され、アクセス権を扱うコードが chgrp と chown に統合されました。 GNU Coreutils との互換性を向上させるために、多数の変更が追加されました。

将来の計画には、stty ユーティリティの実装、GNU Coreutils との互換性を向上させるための継続的な作業、実行可能ファイルのサイズを削減するための最適化の追加、および GNU Coreutils と GNU の代わりに Debian と Ubuntu で uutils ユーティリティを使用する実験の継続が含まれます。 Findutils (uutils の主な開発者の XNUMX 人は、以前、Clang コンパイラを使用して Debian GNU/Linux を構築するプロジェクトに取り組んでいました)。 さらに、macOS 用の uutils-coreutils パッケージの準備、NixOS で GNU Coreutils を uutils coreutils に置き換える実験、Apertis ディストリビューションでデフォルトで uutils coreutils を使用する意図、および Redox OS 用の uutils セットの適応についても言及されています。

出所: オープンネット.ru

コメントを追加します