No description
Find a file
2026-09-01 13:53:48 +02:00
001_comunicacao_cabine@ee53de4e96 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
002_painel_instrumentos@c55f44baa4 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
003_sistemas_compostos@90807441f4 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
004_inteligencia_sistema@0dd0d6144c feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
005_configuracoes_dinamicas@3b2e2c4b77 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
006_operacoes_campo@2e37df5dd9 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
007_decisoes_taticas@a66d3c7fe1 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
008_patrulhamento_continuo@cfb5d1d1c3 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
009_protocolos_comunicacao@8d66cab3b5 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
010_relatorios_status@4d26cd8b83 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
011_memoria_batalha@d1bb08d0c2 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
012_propriedade_sistemas@63ca0c27d9 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
013_apontadores_combate@b051592548 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
014_dados_textuais@3d0b54dbc1 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
015_duplicacao_dados@24ed850f99 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
016_configuracoes_globais@5f4207e1a1 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
017_estruturas_dados@905473464f feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
018_estados_sistema@0a1c0c6eeb feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
019_decodificacao_tatica@e6e72c834f feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
020_protocolos_incerteza@880e1a7e21 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
021_interface_sistema@fd574da742 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
022_arsenal_dinamico@756a086846 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
023_inventario_estruturado@2a3997a872 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
024_pacotes_dados@45fffae28e feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
025_metodos_sistema@29176c6a93 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
026_tempo_vida@fee06e4cc8 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
027_nomenclatura_avancada@a6cec36088 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
028_sistemas_universais@1611bb7fa5 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
029_comportamentos_compartilhados@d1be0aeeb4 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
030_sintese_rapida@25ff731c74 feat: add 030_sintese_rapida submodule 2026-09-01 13:53:48 +02:00
031_propagacao_erros@c1534f0f34 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
032_manobras_avancadas@ef61c9ca7c feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
033_funcoes_anonimas@058430febe feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
034_iterators@a196184944 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
035_metodos_encadeados@6b8bb4ce6c feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
036_macros_basicas@3e2a99b64b feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
037_tipos_box@60c6be9601 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
038_testes_automatizados@b84340d64d feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
039_documentacao@865a2b9b8d feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
040_publicacao@2c24e4c99c feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
041_threads_join@928d9a0f7a feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
042_channels@ec42884932 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
043_estado_compartilhado@28210e8c0d feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
044_send_sync@8d4991a71d feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
045_async_basico@30846eac9d feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
046_macros_declarativas@eaab4c09bc feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
047_unsafe_rust@47d5e07c82 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
048_ffi@84a1bbb899 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
049_webassembly@518a606295 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
050_projeto_final@64faf92352 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
051_engenharia_rev@9621d4a038 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
052_protocolos_rede@d40c62eeb2 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
053_serializacao@ee33c203cc feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
054_arquitetura_dist@2a3419b877 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
055_seguranca_avanc@61078fd3b9 feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
056_certificacao_final@d6c08d755b feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
scripts feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
templates feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
.gitignore feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
.gitmodules feat: add 030_sintese_rapida submodule 2026-09-01 13:53:48 +02:00
.vale.ini feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
CONTRIBUTING.md feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
GLOSSARIO.md feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
LICENSE feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
README.md feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00
test_all.sh feat: central repo with 55 lesson submodules 2026-09-01 13:50:05 +02:00

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)
  • 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

  1. 📖 LEIA o README.md da lição — entenda o conceito e a missão
  2. 🛠️ IMPLEMENTE as funções em src/lib.rs, substituindo os todo!()
  3. TESTE com cargo test — os testes em tests/integracao.rs devem passar
  4. 🔍 VERIFIQUE com cargo clippy e cargo 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.