Rust Coreutils 0.8が登場、dd 45%高速化とブラウザ実行環境
GNU Coreutilsの代替を目指すRust製ユーティリティ群が、また一歩実用性を高めた。パフォーマンス向上に加え、ブラウザで直接試せるPlaygroundが登場している。
ddコマンドが45%高速化
Rust Coreutils 0.8.0が4月上旬にリリースされた。GNU Coreutilsのテストスイート互換性は94.74%に達し、前バージョン0.7から0.15ポイント向上している。
このプロジェクトは、LinuxやmacOS、Windowsで日常的に使われるls、cp、cat、sortといった基本コマンド群をRustで書き直す試みだ。Ubuntu 25.10ではすでに標準採用されており、Ubuntu 26.04 LTSでも0.7系が採用される予定となっている。
ddコマンドは45%の高速化を達成した。これが今回最大の改善点だ。
ユーティリティ全体で起動時間が短縮され、sortのパスソート処理も高速化された。numfmtは3%の性能向上を記録している。
ddはディスクイメージの作成やバックアップに頻繁に使われるコマンド。45%の高速化は、大容量ファイルを扱う場面で体感できる差になる。
ブラウザで動くPlayground
もう一つの注目点は、WebAssembly(WASI)サポートの拡充だ。新たに公開されたオンラインPlaygroundでは、インストール不要でRust Coreutilsをブラウザ上で試せる。
今回のリリースで70以上のユーティリティがWASI対応となった。ls、cat、sort、head、factorといったコマンドをブラウザのターミナル風インターフェースで実行できる。パイプ処理やリダイレクトも動作し、30以上の言語ロケールに切り替え可能だ。
技術的には、wasm32-wasip1ターゲットへコンパイルされた単一のマルチコールバイナリとして動作する。BusyBoxと同様のアーキテクチャで、1つのWASMバイナリがすべてのコマンドを提供している。
従来、coreutilsを試すにはLinux環境やWSLが必要だった。Playgroundの登場で、Windowsユーザーでもブラウザだけで各コマンドの挙動を確認できるようになった。
nixからrustixへの移行が始まる
内部実装でも大きな変更が進行中だ。低レベルのシステムコール呼び出しに使っていたnixクレートからrustixへの移行が始まった。
rustixはunsafeコードを内部に隠蔽し、より安全なAPIを提供するクレートだ。この移行により、hostname、logname、who、niceといったコマンドでunsafeコードが削除されている。
エッジケースでのパニック対策も強化された。/dev/fullへの書き込み時に正しくアボートするようになり、予期しないクラッシュが減少している。
| 0.7 | 0.8 | |
|---|---|---|
| GNU互換性 | 94.59% | 94.74% |
| パステスト数 | 629 | 630 |
| WASI対応 | 一部 | 70+ |
| Playground | — | 新規追加 |
| rustix移行 | — | 開始 |
rustixへの移行は一度には完了しない。0.8では移行の「開始」であり、今後のリリースで段階的に進められる見込みだ。
コミュニティの広がり
0.8のリリースには13人の新規コントリビューターが参加した。GitHubのスター数は約2万3,000に達し、プロジェクトの勢いは衰えていない。
リリースノートを眺めると、catコマンドだけで10件以上の改善がコミットされている。splice()呼び出しの最適化、パイプ処理の改善、WASIスタブの追加など、細かな改善の積み重ねが全体の品質を押し上げている。
ドキュメント面でもTL;DR形式の例示がマニュアルに追加され、フランス語とスペイン語の翻訳が日次更新されるようになった。Weblateでの翻訳貢献も受け付けている。
Ubuntu採用後の次のステップ
Rust Coreutilsは「GNUの代替」という野心的な目標を掲げている。しかし開発チームは、これをGNUプロジェクトとの対立とは位置づけていない。
FOSDEM 2026での発表でリード開発者のシルベストル・レドリュは、Cの時代は終わりつつあり、新しい世代の開発者はCを書きたがらないと指摘した。Rustへの移行は、次世代が参加しやすいコードベースを作ることが目的だという。
とはいえ、Rustのメモリ安全性がもたらす恩恵は無視できない。use-after-freeやバッファオーバーフローといった脆弱性クラスは、言語レベルで排除される。
Ubuntuは「慎重だが意図的にRust化を進める」方針を取っている。明示的なロールバック経路を用意し、段階的に導入を拡大している。
課題は残る
互換性94.74%は高い数字だが、裏を返せば5%以上のテストがまだ通過していない。100個以上のコマンドを抱えるCoreutilsでは、エッジケースの挙動の違いが実環境で問題になる可能性がある。
バージョン番号が1.0未満のまま本番環境に投入されることへの懸念も根強い。Ubuntu 26.04 LTSが0.7系を採用することに対し、「LTSリリースに1.0未満を入れるのか」という声もある。
それでも、5年前には142テストしか通らなかったプロジェクトが630テストをパスするまでに成長した事実は重い。ブラウザで試せるPlaygroundの存在は、懐疑派を含むより多くの人が自分の目で確かめる機会を提供している。
| 2021年 | 2026年 | |
|---|---|---|
| パステスト数 | 142 | 630 |
| 成長率 | — | 約4.4倍 |
GNUとの完全互換を達成するのが先か、Rust採用の波に乗って普及が進むのが先か。答えは、ユーザーの選択が決めることになる。
参照元
関連記事
- トーバルズ、Linux 7.0来週リリースへ rc7で最終確認
- Linux 7.0でPostgreSQL性能半減、修正困難か
- Gentooのエイプリルフールがガチだった件──36年越しのカーネルが動く
- Ubuntu 26.04 LTSが最小RAM要件を6GBに引き上げ――価格高騰の真っ只中に
- BUS1がRustで復活──LinuxカーネルIPC再挑戦
- GNOME 50がGoogle Driveを切り捨てた理由
- Ubuntu MATE創設者が12年の歴史に区切り──後継者不在のまま幕引きへ
- GIMP 3.2.2リリース──「7年沈黙」を脱したOSSが見せる新しいリズム
- NVIDIA環境でもKDE PlasmaがGNOMEを超える
- UbuntuがRust製の時刻同期ツール「ntpd-rs」をデフォルト採用へ