- Shell 100%
| 001_comunicacao_cabine@ee53de4e96 | ||
| 002_painel_instrumentos@c55f44baa4 | ||
| 003_sistemas_compostos@90807441f4 | ||
| 004_inteligencia_sistema@0dd0d6144c | ||
| 005_configuracoes_dinamicas@3b2e2c4b77 | ||
| 006_operacoes_campo@2e37df5dd9 | ||
| 007_decisoes_taticas@a66d3c7fe1 | ||
| 008_patrulhamento_continuo@cfb5d1d1c3 | ||
| 009_protocolos_comunicacao@8d66cab3b5 | ||
| 010_relatorios_status@4d26cd8b83 | ||
| 011_memoria_batalha@d1bb08d0c2 | ||
| 012_propriedade_sistemas@63ca0c27d9 | ||
| 013_apontadores_combate@b051592548 | ||
| 014_dados_textuais@3d0b54dbc1 | ||
| 015_duplicacao_dados@24ed850f99 | ||
| 016_configuracoes_globais@5f4207e1a1 | ||
| 017_estruturas_dados@905473464f | ||
| 018_estados_sistema@0a1c0c6eeb | ||
| 019_decodificacao_tatica@e6e72c834f | ||
| 020_protocolos_incerteza@880e1a7e21 | ||
| 021_interface_sistema@fd574da742 | ||
| 022_arsenal_dinamico@756a086846 | ||
| 023_inventario_estruturado@2a3997a872 | ||
| 024_pacotes_dados@45fffae28e | ||
| 025_metodos_sistema@29176c6a93 | ||
| 026_tempo_vida@fee06e4cc8 | ||
| 027_nomenclatura_avancada@a6cec36088 | ||
| 028_sistemas_universais@1611bb7fa5 | ||
| 029_comportamentos_compartilhados@d1be0aeeb4 | ||
| 030_sintese_rapida@25ff731c74 | ||
| 031_propagacao_erros@c1534f0f34 | ||
| 032_manobras_avancadas@ef61c9ca7c | ||
| 033_funcoes_anonimas@058430febe | ||
| 034_iterators@a196184944 | ||
| 035_metodos_encadeados@6b8bb4ce6c | ||
| 036_macros_basicas@3e2a99b64b | ||
| 037_tipos_box@60c6be9601 | ||
| 038_testes_automatizados@b84340d64d | ||
| 039_documentacao@865a2b9b8d | ||
| 040_publicacao@2c24e4c99c | ||
| 041_threads_join@928d9a0f7a | ||
| 042_channels@ec42884932 | ||
| 043_estado_compartilhado@28210e8c0d | ||
| 044_send_sync@8d4991a71d | ||
| 045_async_basico@30846eac9d | ||
| 046_macros_declarativas@eaab4c09bc | ||
| 047_unsafe_rust@47d5e07c82 | ||
| 048_ffi@84a1bbb899 | ||
| 049_webassembly@518a606295 | ||
| 050_projeto_final@64faf92352 | ||
| 051_engenharia_rev@9621d4a038 | ||
| 052_protocolos_rede@d40c62eeb2 | ||
| 053_serializacao@ee33c203cc | ||
| 054_arquitetura_dist@2a3419b877 | ||
| 055_seguranca_avanc@61078fd3b9 | ||
| 056_certificacao_final@d6c08d755b | ||
| scripts | ||
| templates | ||
| .gitignore | ||
| .gitmodules | ||
| .vale.ini | ||
| CONTRIBUTING.md | ||
| GLOSSARIO.md | ||
| LICENSE | ||
| README.md | ||
| test_all.sh | ||
Academia Æther — Guia de Rust 🤖⚙️
Um Guia Completo e Gamificado para Aprender Rust do Zero ao Avançado. (56/56 Lições Completas ✅)
Bem-vindo, Piloto!
Este repositório contém o curso completo da Academia Æther, uma escola de formação de pilotos de mechas (robôs gigantes) onde você aprenderá Rust através de uma narrativa imersiva de engenharia robótica. Cada tópico representa um módulo de treinamento na academia, desde os fundamentos da cabine até sistemas avançados de combate e engenharia.
📋 Pré-requisitos
Antes de iniciar seu treinamento na Academia Æther, você precisará instalar o seguinte equipamento:
- Rust (edição 2024) — O núcleo de processamento da sua mecha
- Instale via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - Verifique:
rustc --version(deve ser 1.85.0 ou superior)
- Instale via rustup:
- Cargo — O sistema de gerenciamento de módulos (vem com Rust)
- Git — Para sincronização de dados entre bases
🚀 Como Clonar o Repositório
git clone https://forgejo.singularjourney.host/devjonatas/rust-guide.git
🗺️ Índice das Lições
O treinamento está organizado em 56 Lições, cada uma em sua própria pasta na raiz do repositório:
| # | Lição | Link |
|---|---|---|
| 001 | Comunicação na Cabine (Comentários) | 001_comunicacao_cabine |
| 002 | Painel de Instrumentos (Tipos Simples) | 002_painel_instrumentos |
| 003 | Sistemas Compostos (Tipos Compostos) | 003_sistemas_compostos |
| 004 | Inteligência do Sistema (Inferência de Tipos) | 004_inteligencia_sistema |
| 005 | Configurações Dinâmicas (Mutabilidade) | 005_configuracoes_dinamicas |
| 006 | Operações de Campo (Operadores) | 006_operacoes_campo |
| 007 | Decisões Táticas (Condicionais) | 007_decisoes_taticas |
| 008 | Patrulhamento Contínuo (Loops) | 008_patrulhamento_continuo |
| 009 | Protocolos de Comunicação (Funções Básicas) | 009_protocolos_comunicacao |
| 010 | Relatórios de Status (Print Debugging) | 010_relatorios_status |
| 011 | Memória de Batalha (Stack/Heap) | 011_memoria_batalha |
| 012 | Propriedade dos Sistemas (Ownership) | 012_propriedade_sistemas |
| 013 | Apontadores de Combate (References/Slices) | 013_apontadores_combate |
| 014 | Dados Textuais (Strings) | 014_dados_textuais |
| 015 | Duplicação de Dados (Copy/Clone) | 015_duplicacao_dados |
| 016 | Configurações Globais (Const/Static) | 016_configuracoes_globais |
| 017 | Estruturas de Dados (Structs) | 017_estruturas_dados |
| 018 | Estados do Sistema (Enums) | 018_estados_sistema |
| 019 | Decodificação Tática (Pattern Matching) | 019_decodificacao_tatica |
| 020 | Protocolos de Incerteza (Option/Result) | 020_protocolos_incerteza |
| 021 | Interface do Sistema (Dot Operator) | 021_interface_sistema |
| 022 | Arsenal Dinâmico (Vec) | 022_arsenal_dinamico |
| 023 | Inventário Estruturado (HashMap/HashSet) | 023_inventario_estruturado |
| 024 | Pacotes de Dados (Tuplas Avançadas) | 024_pacotes_dados |
| 025 | Métodos de Sistema (Métodos/Impl) | 025_metodos_sistema |
| 026 | Tempo de Vida (Lifetimes) | 026_tempo_vida |
| 027 | Nomenclatura Avançada (Type Aliases) | 027_nomenclatura_avancada |
| 028 | Sistemas Universais (Generics) | 028_sistemas_universais |
| 029 | Comportamentos Compartilhados (Traits) | 029_comportamentos_compartilhados |
| 030 | Síntese Rápida (Turbo Fish) | 030_sintese_rapida |
| 031 | Propagação de Erros (Operador ?) | 031_propagacao_erros |
| 032 | Manobras Avançadas (Controle de Fluxo Avançado) | 032_manobras_avancadas |
| 033 | Funções Anônimas (Closures) | 033_funcoes_anonimas |
| 034 | Iterators | 034_iterators |
| 035 | Métodos Encadeados (Method Chaining) | 035_metodos_encadeados |
| 036 | Macros Básicas | 036_macros_basicas |
| 037 | Tipos Box | 037_tipos_box |
| 038 | Testes Automatizados | 038_testes_automatizados |
| 039 | Documentação (Cargo Doc) | 039_documentacao |
| 040 | Publicação e Crates.io | 040_publicacao |
| 041 | Threads e Join | 041_threads_join |
| 042 | Channels (Message Passing) | 042_channels |
| 043 | Shared State (Mutex e Arc) | 043_estado_compartilhado |
| 044 | Send e Sync Traits | 044_send_sync |
| 045 | Async/Await (Básico) | 045_async_basico |
| 046 | Macros Declarativas | 046_macros_declarativas |
| 047 | Unsafe Rust | 047_unsafe_rust |
| 048 | FFI (Foreign Function Interface) | 048_ffi |
| 049 | WebAssembly (Wasm) | 049_webassembly |
| 050 | 🏆 Projeto Final: Servidor Web Multithread | 050_projeto_final |
| 051 | Engenharia de Revisão (Code Review, Refactoring) | 051_engenharia_rev |
| 052 | Protocolos de Rede (TCP/UDP, HTTP, Sockets) | 052_protocolos_rede |
| 053 | Serialização (JSON, Serde, Persistência) | 053_serializacao |
| 054 | Arquitetura Distribuída (Microservices) | 054_arquitetura_dist |
| 055 | Segurança Avançada (Cryptography) | 055_seguranca_avanc |
| 056 | 🏆 Certificação Final (Capstone Project) | 056_certificacao_final |
🔄 Como Usar Este Guia (Workflow TDD)
Cada lição segue uma metodologia prática de Test-Driven Development (TDD) — os testes já vêm prontos e falham de propósito até você implementar as funções:
Estrutura de Cada Lição
Cada pasta NNN_nome_da_licao/ contém:
NNN_nome_da_licao/
├── README.md # Narrativa, conceito e missão da lição
├── Cargo.toml # edition = "2024"
├── src/
│ └── lib.rs # Funções com stubs todo!() — sua missão é implementá-las
├── tests/
│ └── integracao.rs # Testes que falham até você implementar
├── .woodpecker.yml # CI (clippy, fmt, audit)
└── .forgejo/workflows/ci.yml # CI (Forgejo Actions)
Workflow Recomendado
- 📖 LEIA o
README.mdda lição — entenda o conceito e a missão - 🛠️ IMPLEMENTE as funções em
src/lib.rs, substituindo ostodo!() - ✅ TESTE com
cargo test— os testes emtests/integracao.rsdevem passar - 🔍 VERIFIQUE com
cargo clippyecargo fmt --check
Comandos Essenciais
# Entrar em uma lição
cd 001_comunicacao_cabine
# Rodar testes
cargo test
# Verificar erros sem compilar
cargo check
# Formatar código
cargo fmt
# Análise estática (linting)
cargo clippy
🏆 O Que Você Vai Construir
Ao completar a Academia Æther, você dominará:
- Fundamentos de Rust: Variáveis, tipos, funções, controle de fluxo
- Sistema Único de Ownership: Borrowing, lifetimes, memória segura sem GC
- Estruturas de Dados: Structs, Enums, Vec, HashMap, Smart Pointers
- Engenharia de Software: Módulos, workspaces, testes, documentação
- Concorrência: Threads, canais, mutex, async/await sem data races
- Tópicos Avançados: Macros, Unsafe, FFI, WebAssembly
- Projeto Final: Um servidor web multithreaded construído do zero
- Engenharia de Produção: Code review, redes, serialização, arquitetura distribuída, segurança
🤝 Contribuindo
Quer ajudar a melhorar a Academia Æther? Consulte nosso Guia de Contribuição para:
- Reportar erros ou inconsistências
- Propor melhorias na documentação
- Enviar correções de código
- Contribuir financeiramente
📚 Recursos Adicionais
⚡ Inicie Seu Treinamento
# Comece pela Lição 1
cd 001_comunicacao_cabine
cargo test
Boa sorte, Piloto! Que o Borrow Checker esteja com você. 🦀🤖
Construído com ❤️ e 🦀 pela Equipe Antigravity.