Projetos Práticos em Rust
50 projetos com walkthrough em português, da primeira CLI a APIs, ferramentas de sistema, parsers e jogos.
Se você quer aprender Rust construindo, comece por uma CLI pequena, avance para um projeto com arquivos e testes e só depois entre em async, APIs ou sistemas. Esta coleção reúne 50 projetos em Rust com código e explicações. Para não se perder, escolha um projeto compatível com seu nível, termine uma versão mínima e acrescente qualidade de produção: erros claros, testes, documentação e CI.
Não é preciso concluir os 50. Três projetos bem acabados — por exemplo, uma CLI, uma API e uma ferramenta ligada à vaga desejada — formam um portfólio mais convincente que muitos repositórios abandonados. Se o objetivo é emprego, combine esta página com o guia de projetos Rust para portfólio e vagas e com as vagas Rust disponíveis.
Qual projeto Rust escolher primeiro?
Use esta rota rápida conforme sua experiência:
| Seu nível | Projeto recomendado | O que você pratica | Próximo passo |
|---|---|---|---|
| Primeiro contato | Calculadora | tipos, funções, match e entrada do usuário | Gerador de senhas |
| Iniciante | Lista de tarefas CLI | structs, enums, arquivos e Result | Formatador JSON |
| Iniciante avançado | Clone de grep | iteradores, texto, argumentos e testes | Analisador CSV |
| Intermediário | API REST CRUD | HTTP, Serde, rotas e persistência | Autenticação JWT |
| Intermediário | Chat WebSocket | async, Tokio, estado compartilhado e canais | Rate limiter |
| Intermediário avançado | Banco key-value | armazenamento, serialização e design de API | Agregador de logs |
| Avançado | Load balancer | concorrência, rede, health checks e resiliência | Task scheduler |
| Avançado e criativo | Emulador CHIP-8 | arquitetura, memória, instruções e gráficos | Ray tracer |
Se ownership e borrowing ainda interrompem o progresso a cada função, escolha um projeto síncrono e pequeno. Se você já consegue modelar erros com Result, separar módulos e escrever testes, uma API ou ferramenta concorrente oferece desafios mais relevantes. O melhor projeto não é o mais complexo: é o menor projeto que ensina a próxima habilidade de que você precisa.
Categorias de projetos
Ferramentas CLI
Projetos de linha de comando como grep clone, gerenciador de tarefas, analisador CSV, scanner de portas e utilitários de arquivos.
Web e APIs
API REST CRUD, encurtador de URLs, chat WebSocket, autenticação JWT, GraphQL, upload e outros serviços de backend.
Sistemas e DevOps
Agregador de logs, file watcher, monitor de processos, load balancer, métricas e ferramentas próximas do sistema operacional.
Dados e parsing
Motor de regex, shell básico, banco key-value, web crawler, parsers, compressor e um pequeno compilador.
Jogos e projetos criativos
Jogo da velha, Snake, ray tracer, emulador CHIP-8, fractais Mandelbrot, arte ASCII e simulações.
Trilha 1: projetos Rust para iniciantes
Comece com programas que possuem entrada, transformação e saída claras. A calculadora é útil para praticar match e tratamento de entradas inválidas. A lista de tarefas CLI introduz structs, persistência e separação de responsabilidades. O formatador JSON adiciona parsing e mensagens de erro que fazem sentido para quem usa a ferramenta.
Depois, experimente o clone de grep. Ele aproxima o exercício de uma ferramenta real: argumentos, leitura eficiente de arquivos, busca textual, saída para terminal e testes com arquivos temporários. É um bom ponto para aprender Clap, iteradores e a diferença entre retornar um erro e encerrar o processo.
Uma primeira versão deve ser pequena. Não comece com plugins, interface gráfica ou arquitetura distribuída. Defina uma linha de chegada objetiva, como “buscar uma expressão em um arquivo e retornar código de saída correto”. Só depois adicione busca recursiva, cores ou expressões regulares.
Trilha 2: projetos de backend com Rust
Para estudar backend, comece pela API REST CRUD e evolua para autenticação JWT, encurtador de URLs ou chat WebSocket. Esses projetos ajudam a conectar conceitos da linguagem a problemas encontrados em produção: validação, estado, concorrência, banco, timeout e respostas de erro consistentes.
Uma stack prática em 2026 é Axum, Tokio, Serde e SQLx com PostgreSQL. Não é necessário colocar tudo na primeira versão. Implemente uma rota, escreva um teste e então acrescente persistência. Para um exemplo de ambiente completo, veja deploy de Axum com Docker Compose e PostgreSQL.
Um backend forte para portfólio deve mostrar mais que endpoints felizes. Inclua ao menos um caso de validação, um erro de recurso não encontrado, configuração por variável de ambiente, migration, health check e logs estruturados. Se houver autenticação, explique como as chaves são configuradas sem gravar segredos no repositório.
Trilha 3: sistemas, performance e DevOps
Rust se destaca quando o projeto precisa de controle de recursos, previsibilidade e binário fácil de distribuir. O monitor de processos, o agregador de logs, o file watcher e o load balancer exercitam esse perfil.
Nessa trilha, meça antes de otimizar. Registre consumo de memória, latência ou throughput de uma carga simples e documente o ambiente. Uma afirmação como “processa 100 mil linhas por segundo no meu notebook, com este comando e este arquivo” é mais útil que dizer apenas “alta performance”. Use Criterion quando microbenchmarks forem adequados e mantenha testes funcionais separados dos benchmarks.
Também vale tratar sinais do sistema, encerramento gracioso e erros de I/O. Uma ferramenta de sistema não está pronta só porque funciona no caso ideal; ela precisa explicar o que aconteceu quando um arquivo desaparece, uma porta já está ocupada ou uma operação é interrompida.
Como transformar um exercício em projeto de portfólio
O código é apenas parte da entrega. Antes de divulgar um repositório, confirme:
- README objetivo: problema, instalação, exemplo de uso e limitações.
- Comando reproduzível:
cargo run -- ...,cargo testou uma instrução de Docker que realmente funciona. - Erros idiomáticos: use
Resulte mensagens acionáveis; eviteunwrap()em caminhos esperados de falha. - Testes úteis: cubra a regra principal e ao menos um caso inválido.
- Qualidade automática: rode
cargo fmt,cargo clippy -- -D warningse testes no CI. - Configuração segura: publique
.env.example, nunca tokens, senhas ou chaves reais. - Decisões documentadas: explique por que escolheu uma crate, estrutura de dados ou abordagem.
- Escopo encerrado: marque uma versão ou release; um projeto pequeno concluído transmite confiança.
Para vagas de backend, destaque API, banco, async e observabilidade. Para sistemas, destaque profiling, I/O, concorrência e portabilidade. Para embedded, mostre restrições de memória, protocolo e hardware. Consulte o guia de portfólio Rust no GitHub para organizar os repositórios e apresentar resultados sem exagerar nas afirmações.
Perguntas frequentes sobre projetos em Rust
Qual é o melhor projeto em Rust para iniciantes?
Uma CLI pequena, como calculadora, gerenciador de tarefas ou formatador JSON. Ela permite praticar tipos, ownership, Result, arquivos, testes e argumentos sem a complexidade inicial de banco ou async. Termine uma versão mínima antes de adicionar recursos.
Quais projetos em Rust ajudam a conseguir emprego?
Depende da vaga. Para backend, faça uma API com Axum, SQLx, PostgreSQL, testes e Docker. Para sistemas ou DevOps, construa uma CLI, monitor de processos ou agregador de logs. O diferencial não é somente o tema: é mostrar documentação, testes, CI, tratamento de erros e decisões técnicas.
Preciso publicar meus projetos Rust no GitHub?
Não é obrigatório, mas um repositório público facilita feedback e avaliação. Inclua licença, instruções de execução e exemplos. Revise o histórico antes de publicar e nunca envie credenciais. Se o código não puder ser aberto, prepare uma demonstração e descreva as decisões sem revelar material confidencial.
Quantos projetos Rust devo ter no portfólio?
Três projetos bem acabados costumam ser suficientes para contar uma história coerente: uma CLI, uma API ou serviço e um projeto do nicho desejado. Qualidade, conclusão e capacidade de explicar trade-offs importam mais que quantidade.
Todos os projetos
Clone do grep em Rust
Neste projeto, vamos construir um clone simplificado do famoso comando grep do Unix. O grep é uma das ferramentas mais utilizadas no dia a dia de qualquer …
Gerenciador de Tarefas CLI
Neste projeto, vamos construir um gerenciador de tarefas (to-do list) completo para a linha de comando. Aplicativos de gerenciamento de tarefas são um clássico …
Leia maisAnalisador de CSV em Rust
Arquivos CSV (Comma-Separated Values) estão em toda parte — exportações de planilhas, logs de servidores, dados de sensores, relatórios financeiros. Neste …
Leia maisRenomeador de Arquivos em Lote
Renomear arquivos em lote é uma tarefa comum que aparece em diversos cenários: organizar fotos por data, padronizar nomes de documentos, adicionar prefixos a …
Leia maisGerador de Senhas Seguras
Senhas fracas são uma das maiores vulnerabilidades de segurança no mundo digital. Neste projeto, vamos construir um gerador de senhas robusto que permite …
Leia maisConversor Markdown para HTML
Markdown é a linguagem de marcação mais popular para documentação, arquivos README, blogs e anotações. Neste projeto, vamos construir um conversor de Markdown …
Leia maisJSON Formatter em Rust: Projeto Prático | Rust Brasil
JSON é o formato de dados mais utilizado em APIs web, configurações de aplicativos e troca de dados entre sistemas. Porém, frequentemente recebemos JSON …
Leia maisAnalisador de Uso de Disco
Saber quanto espaço cada diretório ocupa no disco é fundamental para administração de sistemas, limpeza de espaço e diagnóstico de problemas de armazenamento. O …
Leia maisScanner de Portas de Rede
Scanners de portas são ferramentas essenciais para administradores de rede e profissionais de segurança. Eles permitem descobrir quais serviços estão rodando em …
Leia maisCliente HTTP Completo em Rust
Interagir com APIs HTTP é uma das tarefas mais comuns no desenvolvimento moderno. Ferramentas como curl e httpie são indispensáveis no dia a dia, e construir …
API REST CRUD Completa com Axum
Neste projeto vamos construir do zero uma API REST CRUD completa usando o framework Axum. A API vai gerenciar uma coleção de tarefas (to-do items) com operações …
Leia maisEncurtador de URLs em Rust
Neste projeto vamos construir um serviço encurtador de URLs completo em Rust usando Axum. O serviço vai receber URLs longas, gerar códigos curtos únicos, …
Leia maisChat em Tempo Real com WebSocket
Neste projeto vamos construir um servidor de chat em tempo real usando WebSockets em Rust. Utilizaremos tokio como runtime assíncrono e tokio-tungstenite para a …
Motor de Blog em Rust
Neste projeto vamos construir um motor de blog em Rust que lê arquivos Markdown de um diretório, converte para HTML e serve páginas web completas através do …
Leia maisAutenticacao JWT em Rust
Neste projeto vamos construir um sistema completo de autenticacao com JWT (JSON Web Tokens) usando Axum. O sistema vai incluir registro de usuarios, login com …
Leia maisServico de Upload de Arquivos
Neste projeto vamos construir um servico de upload e download de arquivos usando Axum. O servico vai aceitar uploads multipart, validar tipos de arquivo …
Leia maisRate Limiter Middleware em Rust
Neste projeto vamos construir um rate limiter (limitador de taxa) como middleware para Axum usando o algoritmo token bucket. O middleware vai limitar …
Leia maisServidor de Webhooks em Rust
Neste projeto vamos construir um servidor de webhooks em Rust que recebe, valida, enfileira e processa eventos webhook. O servidor vai verificar assinaturas …
Leia maisAPI GraphQL em Rust
Neste projeto vamos construir uma API GraphQL completa em Rust usando a crate async-graphql integrada com Axum. A API vai gerenciar um catalogo de livros com …
Server-Side Rendering com Templates
Server-Side Rendering (SSR) e a tecnica de gerar HTML completo no servidor antes de envia-lo ao navegador. Diferentemente de SPAs (Single Page Applications), …
Leia maisAgregador de Logs em Rust
Logs sao a principal ferramenta de diagnostico em sistemas de producao. Quando voce tem dezenas de servicos gerando arquivos de log simultaneamente, encontrar a …
Leia maisAgendador de Tarefas (Cron) em Rust
Automatizar a execucao de tarefas em intervalos regulares e uma necessidade fundamental em qualquer ambiente de producao. Desde backups periodicos ate limpeza …
Leia maisMonitor de Alteracoes em Arquivos
Durante o desenvolvimento, recompilar manualmente apos cada alteracao e tedioso e improdutivo. Ferramentas como nodemon, watchexec e cargo-watch resolvem isso …
Monitor de Processos do Sistema
Entender quais processos estao consumindo recursos no sistema e uma habilidade essencial para qualquer desenvolvedor ou administrador de sistemas. Ferramentas …
Leia maisFerramenta de Backup Incremental
Backups sao a ultima linha de defesa contra perda de dados. Um backup incremental inteligente copia apenas os arquivos que realmente mudaram, economizando tempo …
Leia maisResolver DNS em Rust
O DNS (Domain Name System) e o servico que traduz nomes legíveis como www.exemplo.com em enderecos IP como 93.184.216.34. Embora usemos DNS o tempo todo, poucos …
Load Balancer TCP em Rust
Um load balancer e uma peca fundamental em arquiteturas de producao, distribuindo o trafego entre multiplos servidores para garantir alta disponibilidade e …
Leia maisMonitor de Containers Docker
Docker se tornou a ferramenta padrao para empacotar e executar aplicacoes. Monitorar os containers em execucao – seus recursos, status e logs – e …
Leia maisColetor de Metricas com Prometheus
Observabilidade e um dos pilares de sistemas modernos em producao. O Prometheus se consolidou como o padrao de fato para coleta de metricas, e entender como seu …
Leia maisGerenciador de Configuracoes em Rust
Toda aplicacao de software precisa de configuracao: enderecos de servidores, credenciais, parametros de execucao, limites e opcoes. Gerenciar configuracoes de …
Leia maisMotor de Regex Simples em Rust
Expressões regulares são uma das ferramentas mais poderosas da computação. Neste projeto, vamos construir um motor de regex do zero — sem usar a crate regex — …
Calculadora com Parser em Rust
Construir uma calculadora pode parecer simples, mas quando adicionamos variáveis, funções matemáticas e precedência de operadores, o projeto se torna um …
Leia maisShell Básico em Rust
Um shell é uma das ferramentas mais fundamentais de um sistema operacional. Neste projeto, vamos construir um shell básico funcional em Rust que interpreta …
Leia maisCompilador Brainfuck em Rust
Brainfuck é uma linguagem de programação esotérica com apenas 8 instruções, o que a torna perfeita para aprender os fundamentos de construção de compiladores. …
Leia maisBanco de Dados Key-Value em Rust
Bancos de dados key-value são a base de sistemas como Redis, LevelDB e RocksDB. Neste projeto, vamos construir um banco de dados key-value persistente do zero …
Leia maisWeb Crawler em Rust
Um web crawler e um dos programas mais fascinantes que existem: ele navega pela internet automaticamente, seguindo links de pagina em pagina. Neste projeto, …
Leia maisMotor de Templates em Rust
Motores de templates estao por tras de praticamente toda aplicacao web: eles transformam dados dinamicos em HTML, e-mails, documentos e mais. Neste projeto, …
Leia maisFerramenta de Diff em Rust
Comparar arquivos e identificar diferencas e uma operacao fundamental no desenvolvimento de software. O comando diff do Unix e a base de sistemas de controle de …
Parser de Arquivos INI em Rust
O formato INI e um dos formatos de configuracao mais antigos e difundidos na computacao. Usado pelo Windows, PHP, MySQL, Git e inumeros outros programas, ele se …
Leia maisCompressor de Arquivos LZ77 em Rust
Neste projeto vamos construir um compressor e descompressor de arquivos implementando o algoritmo LZ77 do zero em Rust. O LZ77 (Lempel-Ziv 1977) é um dos …
Leia maisJogo da Velha no Terminal em Rust
Neste projeto vamos construir um Jogo da Velha completo no terminal usando Rust puro, sem dependências externas. O jogo terá um tabuleiro colorido renderizado …
Leia maisJogo Snake no Terminal em Rust
Neste projeto vamos construir o clássico jogo Snake (cobrinha) diretamente no terminal usando Rust e a crate crossterm para manipulação de terminal. A cobra se …
Gerador de Arte ASCII em Rust
Neste projeto vamos construir um gerador de arte ASCII que converte qualquer imagem (PNG, JPEG, etc.) em uma representação textual usando caracteres ASCII. O …
Leia maisJogo da Vida de Conway em Rust
Neste projeto vamos construir o Jogo da Vida de Conway – um dos autômatos celulares mais famosos da computação – com visualização em tempo real no …
Leia maisRay Tracer Basico em Rust
Neste projeto vamos construir um ray tracer (traçador de raios) do zero em Rust. Ray tracing é uma técnica de renderização que simula o caminho da luz para …
Leia maisCHIP-8: Guia e Emulador Completo em Rust | Rust Brasil
CHIP-8 é uma linguagem interpretada e uma máquina virtual criada nos anos 1970 para executar jogos simples. Ela tem 4 KB de memória, 16 registradores, display …
Leia maisPlayer de Musica CLI em Rust
Neste projeto vamos construir um player de musica para o terminal em Rust usando a crate rodio para reproduzao de audio. O player tera uma interface interativa …
Gerador de QR Code em Rust
Neste projeto vamos construir um gerador de QR Code completo em Rust. QR Codes (Quick Response Codes) são códigos de barras bidimensionais capazes de armazenar …
Leia maisGerador de Fractais Mandelbrot em Rust
Neste projeto vamos construir um renderizador de fractais do conjunto de Mandelbrot em Rust. O conjunto de Mandelbrot é provavelmente o fractal mais famoso da …
Leia maisEditor de Texto no Terminal em Rust
Neste projeto vamos construir um editor de texto minimalista para o terminal, inspirado no nano, usando Rust e a crate crossterm. O editor permite abrir …