Додавання крейтів третіх сторін
Бібліотеки 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.