8 添加第三方 Crate

添加第三方 Crate — Comprehensive Rust

译文 · 基于 Comprehensive Rust

原文链接: https://google.github.io/comprehensive-rust/chromium/adding-third-party-crates.html

8 添加第三方 Crate

Rust 库称为 “crate”,可在 crates.io 找到。Rust crate 彼此依赖_非常容易_。所以它们确实会依赖!

属性C++ 库Rust crate
构建系统多种多样一致:Cargo.toml
典型库大小偏大小
传递依赖少多

对 Chromium 工程师来说,这有利有弊:

  • 所有 crate 使用共同的构建系统,因此我们可以自动化它们纳入 Chromium……
  • ……但是,crate 通常有传递依赖,因此你很可能需要引入多个库。

我们将讨论:

  • 如何把 crate 放进 Chromium 源码树
  • 如何为其制作 gn 构建规则
  • 如何审计其源码以确保足够安全。

本页表格中的所有内容都是概括,也可以找到反例。但总的来说,重要的是让学员理解:大多数 Rust 代码依赖其他 Rust 库,因为这样做很容易,而这既有好处也有代价。


8.1 配置 Cargo.toml

01-配置 Cargo.toml — Comprehensive Rust

8.2 配置 `gnrt_config.toml`

02-配置 gnrt_config.toml — Comprehensive Rust

8.3 下载 Crate

03-下载 Crate — Comprehensive Rust

8.4 生成 `gn` 构建规则

04-生成 gn 构建规则 — Comprehensive Rust

8.5 解决问题

解决问题 — Comprehensive Rust

8.6 依赖一个 Crate

05-依赖一个 Crate — Comprehensive Rust

8.7 审查与审计

06-审查与审计 — Comprehensive Rust

8.8 检入 Chromium 源码

07-检入 Chromium 源码 — Comprehensive Rust

8.9 保持 Crate 更新

08-保持 Crate 更新 — Comprehensive Rust

8.10 练习

09-练习 — Comprehensive Rust

最后修改 August 11, 2026: 更新 (70a5af133)