サードパーティ クレートの追加

Rust のライブラリは「クレート」と呼ばれ、crates.io にあります。Rust クレート同士が互いに依存するのは 非常に簡単 です。ですから実際にそうなっています!

項目C++ ライブラリRust クレート
ビルドシステムさまざま一貫している: Cargo.toml
一般的なライブラリの規模やや大きい小さい
推移的依存関係少ない多い

Chromium エンジニアにとって、これには長所と短所があります:

  • すべてのクレートが共通のビルドシステムを使っているため、それらの Chromium への取り込みを自動化できます…
  • … ただし、クレートには通常、推移的依存関係があるため、複数の ライブラリを取り込む必要が生じる可能性があります。

以下を説明します:

  • クレートを Chromium のソースコードツリーに配置する方法
  • そのための gn ビルドルールを作成する方法
  • ソースコードを監査して十分な安全性を確認する方法
このスライドの表にある内容はすべて一般化したものであり、 反例も見つけることができます。しかし一般論として、受講者が ほとんどの Rust コードは他の Rust ライブラリに依存していること、 それはそうするのが簡単だからであり、それには利点とコストの両方があることを理解するのは重要です。