Adicionando Crates de Terceiros

As bibliotecas Rust são chamadas de “crates” e são encontradas em crates.io. É muito fácil para as crates Rust dependerem umas das outras. Então eles fazem!

PropriedadeBibliotecas do C++Crates de Rust
Sistema de compilaçãoMuitosConsistente: Cargo.toml
Tamanho típico da bibliotecaMeio grandePequeno
Dependências transitivasPoucos(as)Muitos

Para um engenheiro do Chromium, isso tem prós e contras:

  • Todas as crates usam um sistema de compilação comum, para que possamos automatizar sua inclusão no Chromium…
  • … mas, os crates normalmente têm dependências transitivas, então você provavelmente terá que importar várias bibliotecas.

Vamos discutir:

  • Como colocar um crate na árvore do código-fonte do Chromium
  • Como criar regras de compilação gn para ele
  • Como auditar seu código-fonte para que ele seja seguro o suficiente.
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.