Repositório de estudos acompanhando o The Rust Programming Language Book (também conhecido como "The Book"), com implementações práticas de cada capítulo.
Documentação completa da minha jornada de aprendizado em Rust, seguindo o livro oficial The Rust Programming Language. Cada capítulo é implementado em uma pasta separada com código funcional e anotações de aprendizado.
Por que Rust?
Rust combina performance de baixo nível (como C/C++) com segurança de memória garantida em tempo de compilação — habilidades valiosas para infraestrutura, sistemas embarcados e ferramentas de DevOps modernas.
learn-Rust/
├── 01-hello-cargo/ # Cap. 1 - Hello World com Cargo
├── 02-guessing-game/ # Cap. 2 - Jogo de Adivinhação
├── 03-variables/ # Cap. 3 - Variáveis e Mutabilidade
├── 04-ownership/ # Cap. 4 - Ownership (em breve)
├── 05-structs/ # Cap. 5 - Structs (planejado)
└── README.md
Cada pasta contém:
src/main.rs— código fonte do projetoCargo.toml— arquivo de configuração do CargoREADME.md— anotações e aprendizados do capítulo
Conceitos: Cargo, compilação, estrutura de projetos Rust
Primeiro contato com o ecossistema Rust, entendendo a ferramenta Cargo (gerenciador de pacotes e build).
cd 01-hello-cargo
cargo runConceitos: Input/Output, Match, Loops, Crates externos (rand)
Jogo interativo onde o programa gera um número aleatório e o usuário tenta adivinhar.
Aprendizados principais:
- Uso de
std::iopara entrada de dados - Pattern matching com
match - Importação de crates externos (
rand) - Loops com
loope controle de fluxo
cd 02-guessing-game
cargo runConceitos: Mutabilidade, Shadowing, Tipos de dados, Constantes
Exploração do sistema de tipos e gerenciamento de memória do Rust.
Aprendizados principais:
- Diferença entre
letelet mut - Shadowing vs. Mutabilidade
- Tipos escalares (inteiros, floats, booleanos, caracteres)
- Tipos compostos (tuplas, arrays)
cd 03-variables
cargo run- Cap. 4 — Ownership (conceito central do Rust)
- Cap. 5 — Structs e Métodos
- Cap. 6 — Enums e Pattern Matching
- Cap. 7 — Módulos e Pacotes
- Cap. 8 — Coleções (Vectors, Strings, HashMaps)
- Cap. 9 — Error Handling
- Cap. 10 — Generics, Traits, Lifetimes
- Rust instalado (rustc + cargo)
# Clone o repositório
git clone https://github.com/rapassos/learn-Rust.git
cd learn-Rust
# Navegue até o capítulo desejado
cd 02-guessing-game
# Compile e execute
cargo run
# Ou apenas compile
cargo build
# Executável estará em:
./target/debug/[nome-do-projeto]- 📘 The Rust Programming Language Book — Livro oficial (gratuito)
- 🎓 Rust by Example — Aprendizado prático
- 📝 Rustlings — Exercícios interativos
- 🦀 Rust Playground — Testar código online
- 📚 Docs.rs — Documentação de crates
Como profissional de infraestrutura com 15+ anos de experiência, Rust oferece:
- ⚡ Performance — Velocidade comparável a C/C++, ideal para ferramentas CLI
- 🔒 Segurança — Zero null pointers, zero data races (garantido em compilação)
- 🛠️ Tooling moderno — Cargo, rustfmt, clippy são excelentes
- 🌐 Cross-compilation — Binários para Linux, Windows, macOS com o mesmo código
- 📦 Deploy simples — Binário único, sem dependências de runtime
Casos de uso:
- Ferramentas de automação (substituto de scripts Bash/Python para performance crítica)
- Agents de monitoramento
- Proxies e load balancers customizados
- Parsers de logs de alta performance
- Sintaxe básica e tooling do Rust
- Sistema de tipos e mutabilidade
- Ownership (próximo marco importante!)
- Pattern matching avançado
- Traits e generics
- Async/await para I/O
- Criar ferramenta CLI real com Rust
████████░░░░░░░░░░░░░░░░░░░░ 30% — Capítulo 3 de 10 (conceitos fundamentais)
Última atualização: Fevereiro 2025
Este repositório consolida o que antes eram projetos separados:
learn-Rust-hello_cargo→ agora em01-hello-cargo/learn-Rust-guessing_game→ agora em02-guessing-game/learn-Rust-variables→ agora em03-variables/
Rafael Passos Guimarães
Analista de Infraestrutura | 15+ anos em TI | Estudando Rust para ferramentas de DevOps
- 💼 LinkedIn: @rapassos
- 🐙 GitHub: @rapassos
- 📧 Email: rapassos@gmail.com
MIT License — veja LICENSE para detalhes.
💭 Reflexão: Rust tem uma curva de aprendizado íngreme, mas o borrow checker força a escrever código seguro desde o início. Cada erro de compilação é uma lição sobre gerenciamento de memória — algo que scripts em linguagens de alto nível escondem, mas que profissionais de infraestrutura precisam entender profundamente.