Skip to content
Latchkey

O Que É o Cargo? A Ferramenta de Build e Gerenciador de Pacotes do Rust

O Cargo é a ferramenta de build e o gerenciador de pacotes oficial do Rust: ele compila seu código, resolve dependências (crates), roda testes e gerencia projetos a partir de um único comando.

O Cargo é a ferramenta que todo desenvolvedor Rust usa diariamente. Ele cuida do build, da resolução de dependências, dos testes e da publicação, lendo um único manifesto Cargo.toml. Sua integração estreita com o registro crates.io torna a história de dependências do Rust incomumente suave.

O que é o Cargo

O Cargo é o sistema de build e gerenciador de pacotes oficial que vem junto com a toolchain do Rust. Ele lê o Cargo.toml (o manifesto) e o Cargo.lock (o grafo de dependências fixado), baixa dependências chamadas crates do crates.io, compila-as e orquestra todo o ciclo de build, test e run.

Como funciona

Você declara dependências no Cargo.toml; o Cargo resolve versões compatíveis e registra o conjunto exato no Cargo.lock. O "cargo build" compila seu crate e suas dependências, fazendo cache dos artefatos compilados em target/ para que código inalterado não seja recompilado. O "cargo test" constrói e roda os testes, e o "cargo run" constrói e executa.

Um exemplo de uso

Os comandos do dia a dia cobrem a maior parte do fluxo de trabalho.

Common Cargo commands
# build in release mode
cargo build --release

# run the test suite
cargo test

# check without producing a binary (fast)
cargo check

Papel no CI/CD

Em pipelines, "cargo build" e "cargo test" compilam e verificam o projeto. A compilação do Rust é intensiva em CPU, então fazer cache do registro, do cache de dependências git e do diretório target/ entre execuções é essencial para evitar recompilar o mundo. Como esses builds são lentos, runners gerenciados mais rápidos com um Cargo cache aquecido e auto-retry em falhas transitórias do registro reduzem de forma significativa o tempo de CI.

Alternativas

O Cargo não tem um concorrente direto real no mundo Rust; é o padrão. Para orquestração em nível de workspace entre muitos crates, os times às vezes colocam ferramentas como o cargo-make ou o Just por cima, e o Bazel pode construir Rust em grandes monorepos poliglotas, mas o Cargo continua sendo a base.

Principais conclusões

  • O Cargo é a ferramenta de build e o gerenciador de pacotes oficial do Rust.
  • O Cargo.toml declara dependências; o Cargo.lock fixa o grafo exato.
  • Faça cache do registro e do diretório target/ no CI para evitar recompilar tudo.

Guias relacionados