サードパーティ クレートの追加
Rust のライブラリは「クレート」と呼ばれ、crates.io にあります。Rust クレート同士が互いに依存するのは 非常に簡単 です。ですから実際にそうなっています!
| 項目 | C++ ライブラリ | Rust クレート |
|---|---|---|
| ビルドシステム | さまざま | 一貫している: Cargo.toml |
| 一般的なライブラリの規模 | やや大きい | 小さい |
| 推移的依存関係 | 少ない | 多い |
Chromium エンジニアにとって、これには長所と短所があります:
- すべてのクレートが共通のビルドシステムを使っているため、それらの Chromium への取り込みを自動化できます…
- … ただし、クレートには通常、推移的依存関係があるため、複数の ライブラリを取り込む必要が生じる可能性があります。
以下を説明します:
- クレートを Chromium のソースコードツリーに配置する方法
- そのための
gnビルドルールを作成する方法 - ソースコードを監査して十分な安全性を確認する方法
このスライドの表にある内容はすべて一般化したものであり、
反例も見つけることができます。しかし一般論として、受講者が
ほとんどの Rust コードは他の Rust ライブラリに依存していること、
それはそうするのが簡単だからであり、それには利点とコストの両方があることを理解するのは重要です。