# 🎯 Definição > [!Abstract] Definição > **Cargo** é o sistema de compilação e gerenciador de pacotes oficial do [[Linguagem Rust|Rust]]. Ele automatiza tarefas complexas como baixar dependências (bibliotecas), compilar o código, gerar documentação e publicar pacotes no [crates.io](https://crates.io/). # 📝 Notas ## 1. Principais Funções O Cargo resolve três problemas principais: - **Gerenciamento de Dependências:** Baixa e atualiza bibliotecas automaticamente. - **Build System:** Compila o código fonte com as flags corretas para cada SO. - **Padronização:** Garante que os comandos sejam os mesmos no Windows, macOS ou Linux. ## 2. Arquivos Fundamentais Ao iniciar um projeto com Cargo, dois arquivos são essenciais: - **`Cargo.toml`**: O "Manifesto". Contém metadados do projeto (nome, versão) e a lista de dependências que você escreve. - **`Cargo.lock`**: Contém as versões exatas das dependências instaladas. É gerenciado pelo Cargo para garantir builds reproduzíveis. ## 3. Comandos Essenciais | Comando | Descrição | | :--- | :--- | | `cargo new <nome>` | Cria um novo projeto em um diretório. | | `cargo init` | Inicializa um projeto Cargo no diretório atual. | | `cargo build` | Compila o projeto (gera binário em `target/debug`). | | `cargo run` | Compila (se necessário) e executa o programa. | | `cargo check` | Verifica erros de compilação sem gerar o binário (muito mais rápido). | | `cargo test` | Executa os testes unitários e de integração. | | `cargo doc --open` | Gera a documentação das dependências e a abre no navegador. | > [!Tip] Build para Produção > Use `cargo build --release` para compilar com otimizações de performance. O binário resultante será muito mais rápido, mas a compilação demorará mais. ## 4. Estrutura de Pastas Padrão ```text meu_projeto/ ├── Cargo.toml ├── Cargo.lock ├── src/ │ └── main.rs └── target/ (Gerado após o build) ``` # 🔗 Conceitos relacionados - [[Crates e Módulos]] - [[Publicação no Crates.io]] - [[Variáveis em Rust]] # 📚 Referências - [Introdução - The Cargo Book](https://doc.rust-lang.org/cargo/index.html) - [Crates.io - Registro de Pacotes da Comunidade](https://crates.io/)