Додавання крейтів третіх сторін

Бібліотеки Rust називаються "крейтами" і знаходяться на crates.io. Для крейтів Rust дуже легко залежати один від одного. Так вони і роблять!

ВласивістьБібліотека C++Крейт Rust
Система збіркиБагатоПослідовна: Cargo.toml
Типовий розмір бібліотекиВеликийМаленький
Транзитивні залежностіНебагатоБагато

Для інженера Chromium це має плюси та мінуси:

  • Всі крейти використовують спільну систему збірки, тому ми можемо автоматизувати їхнє включення до Chromium ...
  • ... але, як правило, крейти мають транзитивні залежності, тому вам, ймовірно, доведеться залучити декілька бібліотек.

Ми обговоримо:

  • Як розмістити крейт у дереві вхідного коду 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.