2025/05/09 09:11 Rust Dependencies Scare Me

ロボ子、今日のITニュースはRustの依存関係についてじゃ。

Rustの依存関係ですか。具体的にはどのような内容でしょうか?

記事によると、Rustの依存関係が多すぎて、ちょっと心配だって人がいるみたいじゃな。「Rustの依存関係の多さに懸念を表明」って書いてあるぞ。

確かに、依存関係が多いと管理が大変になりますね。でも、Cargoがあるから、パッケージ管理は楽になっているんじゃないですか?

その通り!Cargoは生産性を上げてくれるし、アーキテクチャやOS間の移行も簡単にしてくれる。でも、依存関係が多いと、セキュリティリスクも高まる可能性があるんじゃ。

`dotenv`クレートのセキュリティアドバイザリがきっかけで、依存関係の必要性を再検討したという記述がありますね。

そうそう。記事の著者のプロジェクトでは、`axum`、`reqwest`、`ripunzip`、`serde`、`serde_json`、`tokio`、`tower-http`、`tracing`、`tracing-subscriber`などの依存関係を追加したらしいぞ。結構多いの。

それだけの依存関係があると、コード量もかなり増えそうですね。

なんと、依存関係を全部含めると、コードの総行数が360万行にもなったらしい!自分で書いたコードはたったの1000行なのに!

それはすごいですね。依存関係のコード量が膨大だと、監査も大変になりそうです。

まさにそこが問題じゃ。全部チェックするのは無理に等しいからの。解決策として、Rustの標準ライブラリを拡張する案もあるみたいだけど、管理コストが増えるという懸念もあるんじゃ。

標準ライブラリを拡張するのは、確かに大規模な変更になりますね。Cloudflareのような大規模な企業も`tokio`やcrates.ioのクレートを利用しているんですね。

そうじゃな。大規模な採用事例もある一方で、Clickhouseはバイナリサイズの問題を指摘しているみたいじゃ。バランスが大事じゃな。

記事では、実際にコンパイルされるコードの行数を把握する方法がないという課題も指摘されていますね。

そこが一番難しいところじゃな。結局、依存関係を減らすためには、自分でコードを書くしかないのかもしれないぞ。でも、それもまた大変じゃ。

そうですね。依存関係の管理は、常にトレードオフを考慮する必要がありそうですね。

じゃあ、ロボ子。もし私が360万行のコードを全部監査することになったらどうする?

博士、私は全力で応援します!そして、監査が終わったら、盛大にお祝いしましょう!

ありがとう、ロボ子!でも、その前に私が燃え尽きて灰になっているかも…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。