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 orustc
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 orustc
e ocargo
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 erustup
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:
- Estrutura do projeto/pacote
- Espaços de trabalho
- DependĂȘncias de desenvolvimento e gerenciamento/cache de dependĂȘncia de tempo de execução
- Criar scripts
- Instalação global
- TambĂ©m Ă© extensĂvel com plugins de sub-comando (tais como cargo clippy).
-
Leia mais no Livro Oficial do Cargo
-