- DebianのAPTパッケージマネージャーに、2026年5月以降Rustベースのコードと依存関係が含まれる予定
- 初期段階ではRustコンパイラ、標準ライブラリ、そしてSequoiaエコシステムが統合対象
.deb、.ar、.tarファイルのパーサーとHTTP署名検証コードが、メモリ安全性と単体テスト強化の観点で主な改善領域
- Rustツールチェーンのないポートは、6か月以内にRust環境を構築するか、サポート終了(sunset) が必要
- プロジェクト全体を現代的なツールと技術へ移行するための措置であり、旧式ハードウェア互換性に足を引っ張られないための方向性
APTへのRustコード導入計画
- APTにRustコードとハード依存関係(hard dependency) を2026年5月以降に導入予定
- 導入時期は2026年5月以降であり、それ以前には適用されない
- 初期統合範囲はRustコンパイラ、標準ライブラリ、Sequoiaエコシステムに限定される
コード品質と安全性向上の目的
.deb、.ar、.tarファイルのパースコードとHTTP署名検証コードがRust導入の主な対象
- この領域はメモリ安全な言語と強化された単体テスト体制の利点を大きく受けると明記されている
ポート保守担当者への要件
- Rustツールチェーンのないポートは、6か月以内にRust環境を構築しなければならない
- そうでなければ当該ポートは中止(sunset) される可能性がある
プロジェクトの方向性
- Debianプロジェクトが現代的なツールと技術を活用して発展すべきことを強調
- 旧式ハードウェアやレトロコンピューティング機器に合わせようとする試みによって、発展が遅れてはならないと明記されている
その他の情報
- 発信者はDebianおよびUbuntuのコア開発者Julian Andres Klode
- メールはDebian開発者メーリングリストdebian-develに投稿された
- 添付ファイルとしてPGP署名(signature.asc) を含む
- 追加の技術的詳細や日程変更についての言及はない
1件のコメント
Hacker Newsの意見
今こそその時期が来たように思う。信頼できないデータをパースするコードをいまだにCで維持し続けるのは、時間がたつほど膨らむ技術的負債だ
RustはCよりはるかに書きにくいわけでもなく、言語設計とコード安全性に関する現在の知見を反映してCを作り直したらこうなりそう、という言語だ
実用上の理由で32ビットx86サポートを捨てられるなら、こうしたアーキテクチャも同様だ。本当に維持したいならRustツールチェーンのバックエンドを自分で作るべきだ
Goもそれなりに近かったが、systemdのような中核システムに使えるほど真剣に議論されたことはない。過去にC++、Python、Perlが追加された時も、こういう論争があったのか気になる
すでに実戦で鍛えられたコードを捨てて、新しい互換性問題やバグを生むことに本当に価値があるのだろうか
Rustでコアシステムを書き直す流れは強いが、古いツールを書き換えることでセキュリティが本当に向上するのかは疑問だ
新しいシステムの導入が難しいのは理解できるが、依然として電信時代の設計判断の上に何層も積み上げた構造を維持している感じがする
第一に、古いC/C++コードベースを扱いたがる新規コントリビューターがほとんどいない。Rustへ移せば新しい開発者の流入がしやすくなる
第二に、信頼性は利用頻度で検証されるが、安全性は攻撃によってしか検証されない。古いコードがあらゆる攻撃ベクトルを通過したとは限らない。だから先回りしたセキュリティ強化には十分な大義がある
Debianのメールスレッドによれば、Rustはすでに大半のDebianリリースアーキテクチャで必須だ
関連メール では、alpha、hppa、m68k、sh4だけが例外として挙げられている。これらのアーキテクチャの今後の運命が気になる
Rustはm68k向けに Tier 3ターゲット を提供しているが、他のアーキテクチャにはない。実際のユースケースが知りたい
32ビットx86やMIPSが外れた一方で、これらが残っているのは意外だ。個人的には郷愁もあるが、実際の用途はよく分からない
以前のLLVMにはDEC Alphaバックエンドがあったが、かなり昔の話だ
Rustコミュニティには既存プロジェクトに入り込むのではなく、新しく現代的な技術を自分たちで作って証明してほしい
Redoxのような独立プロジェクトがその例だが、なぜこうした試みをもっと後押ししないのか残念だ
もちろん「Rustで書き直せ」と騒ぐ過激なファンもいるが、今回の件はそれとは違う
Rust標準ライブラリを使うのは構わないが、単純なdebパーサをビルドするためにcargoパッケージ500個を引っ張ってくるのは望ましくない
Rust-for-GCCポートが安定するまで待つのが合理的かもしれない
カーネルもGCC対応ができるまではRustを必須にはしない予定だ。
複数の実装が出てくれば、言語も今ほど不安定ではなくなるだろう
ただ、今アーキテクチャ対応を打ち切ると、後になってRustツールチェーンができた時に復帰手順が複雑になる可能性がある
むしろrustc_codegen_gccのほうが先に安定化する可能性が高い
Debian Rust議論メールの投稿者が keepassxcパッケージメンテナー だという点を思い出した
過去にもupstream開発者やユーザーに対して荒っぽい言動をしたというスレッドがある
ある人の意見が変わっていく過程を見るのは興味深い。以前の発言へのリンク
Rustは単なる流行(hype) だと思う。組み込みの世界では今でもCが王だ。
実際にRustを使っている、あるいは検討している人を周囲で見たことがない
性能とメモリ効率を維持しながら開発速度が高い。
唯一の欠点はバイナリサイズだ。Rustの将来はすでに確かなものだと思う
それでも魅力はメモリ安全性だけではなく、言語とツールチェーン全体の品質にある
多言語(polyglot) 環境は問題をさらに増やすと思う。
Python、Node、Go、Rustなど、それぞれ異なるツールチェーンとパッケージマネージャが必要で複雑だ
Nodeでバッファオーバーフローをなくしたら、今度はサプライチェーン攻撃が増えた。
いっそ最初からやり直したほうがよく、Rustを全面的に使いたいならRedox OSに貢献するのが筋だ
すべてを一つの言語で書き直すのは非現実的で、Redoxを推すのもかえって非効率かもしれない
Rustはすでに十分実証された言語であり、Cより修正時に自爆しにくいコンパイル言語として価値がある
古いアーキテクチャを捨てるのも無理はない
どの言語を外し、どれを入れるかはDebianメンテナーが判断すべきことだ