اضافه‌کردن Crateهای شخص ثالث

کتابخانه‌های Rust "Crates" نامیده می‌شوند و در crates.io یافت می‌شوند. وابستگی cratesهای Rust به یکدیگر بسیار آسان است. بنابراین آنها این کار را انجام می‌دهند!

ویژگیC++ libraryRust crate
Build systemتعداد زیادییکپارچگی: Cargo.toml
اندازه کتابخانه معمولیLarge-ishکوچک
وابستگی‌های گذراFewتعداد زیادی

برای یک مهندس 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.