添加第三方 Crate
Rust 库被称为 crate
,可在 crates.io 中找到。Rust 的 crate 之间非常容易相互依赖。事实证明,他们确实如此!
属性 | C++ library | Rust crate |
---|---|---|
Build system | 很多 | 保持一致:Cargo.toml |
典型库的大小 | 大 | 小 |
传递依赖项 | 很少 | 很多 |
对于 Chromium 工程师来说,这种依赖关系具有以下利弊:
- 所有 crate 都使用共同的构建系统,这样我们就可以自动将其收录到 Chromium 中...
- ...但是,crate 通常具有传递依赖项,因此可能需要引入多个库。
我们将讨论以下内容:
- 如何将 crate 添加到 Chromium 源代码树中
- 如何为其制定
gn
构建规则 - 如何审核其源代码以确保足够的安全性。
All of the things in the table on this slide are generalizations, and
counter-examples can be found. But in general it's important for students
to understand that most Rust code depends on other Rust libraries, because
it's easy to do so, and that this has both benefits and costs.