O Ecossistema Rust

O ecossistema Rust consiste em várias ferramentas, das quais as principais são:

  • rustc: o compilador Rust que converte arquivos .rs em binários e outros formatos intermediários.

  • cargo: o gerenciador de dependências e ferramenta de compilação do Rust. O Cargo sabe como baixar dependências, normalmente hospedadas em https://crates.io, e as passará para o rustc quando compilar o seu projeto. O Cargo também vem com um gerenciador de testes embutido que é utilizado para a execução de testes unitários.

  • rustup: o instalador e atualizador do conjunto de ferramentas do Rust. Esta ferramenta é utilizada para instalar e atualizar o rustc e o cargo quando novas versões do Rust forem lançadas. Além disso, rustup também pode baixar a documentação da biblioteca padrão. Você pode ter múltiplas versões do Rust instaladas ao mesmo tempo e rustup permitirá que você alterne entre elas conforme necessário.

Pontos chave:

  • O Rust tem um cronograma de lançamento rápido com um novo lançamento saindo a cada seis semanas. Novos lançamentos mantêm compatibilidade com versões anteriores — além disso, eles habilitam novas funcionalidades.

  • Existem três canais de lançamento: “stable”, “beta” e “nightly”.

  • Novos recursos estão sendo testados em “nightly”, “beta” é o que se torna “stable” a cada seis semanas.

  • Dependências também podem ser resolvidas a partir de registros alternativos, git, pastas, e outros mais.

  • O Rust também tem edições: a edição atual é o Rust 2021. As edições anteriores foram o Rust 2015 e o Rust 2018.

    • As edições podem fazer alterações incompatíveis com versões anteriores da linguagem.

    • Para evitar quebra de código, as edições são opcionais: você seleciona a edição para o seu crate através do arquivo Cargo.toml.

    • Para evitar a divisão do ecossistema, os compiladores Rust podem misturar código escrito para diferentes edições.

    • Mencione que é muito raro usar o compilador diretamente, não através do cargo (a maioria dos usuários nunca o faz).

    • Pode valer a pena mencionar que o próprio Cargo é uma ferramenta extremamente poderosa e abrangente. Ele é capaz de muitos recursos avançados, incluindo, entre outros:

    • Leia mais no Livro Oficial do Cargo