4 策略
04-策略 — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/chromium/policy.html
4 策略
Chromium 的 Rust 策略见 此处。 Rust 既可用于第一方代码,也可用于第三方代码。
纯第一方代码使用 Rust 的样子如下:
"C++" Rust
.- - - - - - - - - -. .- - - - - - - - - - -.
: : : :
: Existing Chromium : : Chromium Rust :
: "C++" : : code :
: +---------------+ : : +----------------+ :
: | | : : | | :
: | o-----+-+-----------+-+-> | :
: | | : Language : | | :
: +---------------+ : boundary : +----------------+ :
: : : :
`- - - - - - - - - -' `- - - - - - - - - - -'
第三方情形也很常见。你通常还需要少量第一方胶水代码,因为极少有 Rust 库直接暴露 C/C++ API。
"C++" Rust
.- - - - - - - - - -. .- - - - - - - - - - - - - - - - - - - - - - -.
: : : :
: Existing Chromium : : Chromium Rust Existing Rust :
: "C++" : : "wrapper" crate :
: +---------------+ : : +----------------+ +-------------+ :
: | | : : | | | | :
: | o-----+-+-----------+-+-> o-+----------+--> | :
: | | : Language : | | Crate | | :
: +---------------+ : boundary : +----------------+ API +-------------+ :
: : : :
`- - - - - - - - - -' `- - - - - - - - - - - - - - - - - - - - - - -'
使用第三方 crate 的场景更复杂,因此今天的课程将聚焦于:
- 引入第三方 Rust 库(“crates”)
- 编写胶水代码,以便能从 Chromium C++ 使用这些 crate。(处理第一方 Rust 代码时也使用相同技术。)