50 Projetos em Rust para Praticar e Montar Portfólio

50 projetos em Rust com código e passo a passo: CLI, APIs, sistemas, WebAssembly, parsers e jogos. Escolha por nível e monte um portfólio que demonstra habilidades reais.

Projetos

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ívelProjeto recomendadoO que você praticaPróximo passo
Primeiro contatoCalculadoratipos, funções, match e entrada do usuárioGerador de senhas
InicianteLista de tarefas CLIstructs, enums, arquivos e ResultFormatador JSON
Iniciante avançadoClone de grepiteradores, texto, argumentos e testesAnalisador CSV
IntermediárioAPI REST CRUDHTTP, Serde, rotas e persistênciaAutenticação JWT
IntermediárioChat WebSocketasync, Tokio, estado compartilhado e canaisRate limiter
Intermediário avançadoBanco key-valuearmazenamento, serialização e design de APIAgregador de logs
AvançadoLoad balancerconcorrência, rede, health checks e resiliênciaTask scheduler
Avançado e criativoEmulador CHIP-8arquitetura, memória, instruções e gráficosRay 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.

Trilha 4: WebAssembly, jogos e nichos

Depois de uma CLI e um backend, um projeto de nicho diferencia o portfólio — especialmente quando a vaga pede WebAssembly, jogos ou embarcado. Com wasm-bindgen, o gerador de arte ASCII e os fractais de Mandelbrot podem ser compilados para WebAssembly e publicados como páginas interativas: a mesma lógica da versão CLI, agora com outro canal de distribuição e um orçamento de tamanho de binário. Para interfaces completas em Rust, estude a comparação entre Leptos, Dioxus e Yew.

Jogos são um laboratório barato de arquitetura: o jogo da velha, o Snake e o simulador de vida exercitam loop de eventos, estado e renderização sem exigir uma engine. Quando o objetivo for um jogo maior, o guia de Bevy e ECS mostra como estruturar entidades, componentes e sistemas.

Para hardware, a comparação Embassy vs RTIC orienta a escolha do framework em microcontroladores. Antes de comprar uma placa, leve um projeto de terminal — como o DNS resolver — até o fim: protocolo bem definido, buffers limitados e tratamento de timeout são as restrições que também aparecem no embarcado.

Como transformar um exercício em projeto de portfólio

O código é apenas parte da entrega. Antes de divulgar um repositório, confirme:

  1. README objetivo: problema, instalação, exemplo de uso e limitações.
  2. Comando reproduzível: cargo run -- ..., cargo test ou uma instrução de Docker que realmente funciona.
  3. Erros idiomáticos: use Result e mensagens acionáveis; evite unwrap() em caminhos esperados de falha.
  4. Testes úteis: cubra a regra principal e ao menos um caso inválido.
  5. Qualidade automática: rode cargo fmt, cargo clippy -- -D warnings e testes no CI.
  6. Configuração segura: publique .env.example, nunca tokens, senhas ou chaves reais.
  7. Decisões documentadas: explique por que escolheu uma crate, estrutura de dados ou abordagem.
  8. 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.

Quais projetos Rust funcionam bem para WebAssembly?

Algoritmos de processamento local: gerador de arte ASCII, fractais Mandelbrot, formatador JSON e simulações rodam no navegador via wasm-bindgen, sem servidor. O projeto reaproveita a lógica da versão CLI e ainda demonstra distribuição web, controle do tamanho do binário e integração com JavaScript.

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

cli

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 …

cli

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 …

cli

Analisador 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 …

cli

Renomeador 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 …

cli

Gerador 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 …

cli

Conversor 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 …

cli

JSON Formatter em Rust: Projeto Prático

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 …

cli

Analisador 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 …

cli

Scanner 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 …

cli

Cliente 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 …