Linux Daily Topics

2021年3月18日 Rustを学ぶためのプロジェクト―Debian開発者,coreutilsパッケージをRustで実装中

この記事を読むのに必要な時間:およそ 1 分

「開発者にもっとも人気がある言語」としてここ1,2年,さまざまな調査でランクインすることの多いRustだが,オープンソースプロジェクトの現場でもRustの人気は高く,Cで書かれたコンポーネントやプロダクトをRustで書き換えるプロジェクトも増えている。そうしたプロジェクトのひとつとして,Linux/UNIX系のオペレーティングシステムに必須のコマンドラインツールを集めた「coreutils(GNU Core Utilities⁠⁠」をRustで書き換える「uutils/coreutils」がGitHub上で活動中だ。

GitHub - uutils/coreutils : Cross-platform Rust rewrite of the GNU coreutils

このuutils coreutilsをDebianでも使えるようにと再実装に取り組んでいるのがMozillaでエンジニアリングマネージャを務めるSylvestre Ledruだ。3/9付のブログによれば「Debian/GNOME環境でブート,トップ1000パッケージをインストール,Firefox,Linuxカーネル,LLVM/Clangをビルド」することに成功したという。成果物は「rust-coreutils」としてすでにDebian Package Trackerからも入手可能だが,⁠まだGNU Core Utilitiesをプロダクションレベルで置き換えるものではない」⁠Ledru)ため,利用には注意が必要だ。

Debian running on Rust coreutils -Sylvestre's blog

Rustを生んだMozillaに在籍するLedruはuutils coreutilsのコントリビュータでもあるが,rust-coreutilsに関しては「Mozillaで毎日Rustのコードを見ているけど,業務とは別の個人プロジェクトとして,COVIDのロックダウン(Ledruはバリ在住)期間中にRustを勉強する機会を探していた」と語っており,Mozillaでの仕事とは直接関係ないプロジェクトであるとしている。

CからRustへの書き換え,さらにそれをDebian用にパッケージングする作業についてLedruは「ささいなことでもなく,またシンプルといえるようなものではない」⁠Ledru)とコメントしており,パッケージの依存関係やRustのエコシステムに苦労していることを明かしている。なお,FirefoxやLLVM/Clangは何の問題もなくビルドでき,Linuxカーネルも2つのエラーが出た以外は順調にビルドできているという。

Rustを学習するためのプロジェクトとして始めたというLendruだが,⁠このcoreutilsパッケージの書き換えはRustを学ぶにはとても良い手段」として,プロジェクトへのコントリビュートを募っている。また,C→Rust書き換えのプロジェクトはMITやBSDなど,GPL以外のライセンスに変更されるケースが多いが,Lendruはrust-coreutilsも「GPLよりはBSDライセンスを好む人たちに興味をもってもらえるプロジェクトかも」とコメントしている。プログラミングの世界で着実に大きなパワーをもちはじめたRustがC/C++のレガシーコードを書き換える機会はこれからも増えそうだ。

著者プロフィール

階戸アキラ(かいとあきら)

起きてからまず海外ニュースサイトのハシゴをしないと1日を始められない海外ニュースウォッチャー。英語は英検準一級の資格を持ち,日本人と話すより英語圏の人のほうがウマが合う。