---
title: "Curso de Rust 2026: Aprenda do Zero ao Avançado | Rust Brasil"
url: "https://rustlang.com.br/blog/curso-de-rust-2026/"
markdown_url: "https://rustlang.com.br/blog/curso-de-rust-2026.MD"
description: "Curso de Rust completo em português para 2026: roteiro do zero ao avançado com instalação, ownership, concorrência, async, Axum e projetos práticos. Comece hoje de graça."
date: "2026-07-13"
author: "Equipe Rust Brasil"
---

# Curso de Rust 2026: Aprenda do Zero ao Avançado | Rust Brasil

Curso de Rust completo em português para 2026: roteiro do zero ao avançado com instalação, ownership, concorrência, async, Axum e projetos práticos. Comece hoje de graça.


**Sim, existe um curso de Rust completo, gratuito e em português** — e é exatamente este roteiro. Em 2026, você não precisa pagar uma bootcamp internacional para aprender a linguagem mais amada do Stack Overflow pelo décimo primeiro ano seguido: aqui no **Rust Brasil** reunimos um percurso estruturado, do **zero ao avançado**, com instalação, fundamentos, ownership, concorrência, async runtime, APIs web e projetos práticos. Cada módulo aponta para tutoriais aprofundados, exemplos de código que rodam de verdade e exercícios que vão do `hello world` a uma API REST publicável.

A diferença entre "tentar aprender Rust" e **seguir um curso de Rust** é o roteiro. Quem começa sem plano costuma travar no borrow checker, pular entre vídeos aleatórios e nunca terminar um projeto. Este guia resolve isso: são **12 módulos sequenciais**, com critérios claros de "pronto para avançar", pensados para quem fala português e quer entrar no mercado brasileiro. Se você já leu nosso [guia de carreira Rust em 2026](/blog/carreira-rust-2026/) ou o [salário de desenvolvedor Rust no Brasil](/blog/salario-rust-brasil-2026/), sabe que a demanda existe — falta gente preparada. Antes de começar, confira também [por que aprender Rust](/blog/por-que-aprender-rust/) e o [guia de como aprender Rust em 2026](/blog/como-aprender-rust-2026/).

## Por que fazer um curso de Rust em 2026

Rust resolve o problema clássico da programação de sistemas: **performance de C e C++ sem os bugs de memória**. O compilador garante segurança de memória e de concorrência em tempo de compilação, sem garbage collector. Na prática, isso significa aplicações rápidas, com latência previsível e consumo de memória baixo — exatamente o que fintechs, plataformas de infraestrutura, ferramentas de desenvolvimento e sistemas embarcados procuram.

Três fatos concretos explicam o momento:

1. **Ferramentas que você já usa são escritas em Rust.** O bundler do JavaScript `swc`, o resolver `oxc`, o linter `Biome`, partes do `Firefox`, do `Discord`, do `Cloudflare` e do `Linux kernel` (drivers e subsystemos desde 2022) são em Rust. Aprender a linguagem é entender o que roda por baixo do seu dia a dia.
2. **O ecossistema amadureceu.** Com o gerenciador de pacotes **Cargo**, frameworks web maduros como **Axum** e **Actix-web**, o runtime assíncrono **Tokio** e bibliotecas como **serde**, **sqlx** e **clap**, dá-se para construir aplicações de produção sem reinventar a roda.
3. **O mercado brasileiro paga bem.** Profissionais com Rust sólido estão concentrados em vagas de backend, infraestrutura e segurança, frequentemente com salários acima da média de linguagens mais populares — e com bem menos concorrência por posição.

## Antes de começar: o ambiente

O primeiro passo de qualquer curso de Rust é configurar o ambiente. O caminho oficial é o **rustup**, que instala o compilador, o Cargo e permite trocar de versão (stable, beta, nightly) com um comando.

```bash
# Linux e macOS
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Windows: baixe rustup-init.exe em https://rustup.rs
```

Depois de instalar, verifique:

```bash
rustc --version   # compilador
cargo --version   # gerenciador de pacotes e build
```

Recomendamos o [guia de instalação do Rust](/tutoriais/instalando-rust/) e a seção completa de [instalação por sistema](/instalacao/) (Ubuntu, Debian, Fedora, Arch, macOS, Windows, WSL e Docker), além da referência do [rustup](/instalacao/rustup/). Para o editor, o [guia de VS Code para Rust](/instalacao/vscode/) cobre `rust-analyzer`, formatação e debugging.

Crie seu primeiro projeto:

```bash
cargo new meu_primeiro_projeto
cd meu_primeiro_projeto
cargo run
```

Se apareceu `Hello, world!`, seu curso de Rust já começou. 🦀

## O roteiro completo do curso

A seguir, os 12 módulos. Em cada um há um **critério de conclusão** — só avance quando conseguir cumpri-lo sem copiar a resposta.

### Módulo 0 — Configuração e primeiros passos

Instale o Rust, configure o editor e rode o primeiro binário. Entenda o que são `cargo new`, `cargo build`, `cargo run` e `cargo check`. Acesse o tutorial de [primeiros passos](/tutoriais/primeiros-passos/) e mantenha a [cheatsheet de Rust](/cheatsheet/) aberta como referência rápida.

**Critério:** crie um projeto com Cargo, edite a mensagem e rode com `cargo run`.

### Módulo 1 — Variáveis, tipos e funções

Aprenda `let` e `let mut`, imutabilidade por padrão, tipos primitivos (`i32`, `u64`, `f64`, `bool`, `char`), strings (`String` vs `&str`), inferência de tipos, funções, controle de fluxo (`if`, `loop`, `while`, `for`) e a importância do `match`. Veja o tutorial de [variáveis, tipos e funções](/tutoriais/variaveis-tipos-funcoes/).

```rust
fn dobro(x: i32) -> i32 {
    x * 2
}

fn main() {
    let numero = 7;
    let resultado = dobro(numero);
    println!("O dobro de {numero} é {resultado}");
}
```

**Critério:** escreva uma função que recebe dois números e retorna o maior.

### Módulo 2 — Ownership, borrowing e lifetimes (o coração do curso)

Este é o módulo que separa quem aprende Rust de quem desiste. **Ownership** é o sistema pelo qual Rust garante segurança de memória sem garbage collector: cada valor tem um dono, e quando o dono sai de escopo o valor é liberado. **Borrowing** (`&` e `&mut`) permite emprestar o valor sem transferir a posse. **Lifetimes** garantem que referências não sobrevivam aos dados que apontam.

Não pule este módulo. Leia o tutorial completo de [ownership e borrowing](/tutoriais/ownership-borrowing/), faça os exercícios até o compilador parar de reclamar e só então siga em frente.

**Critério:** explique com suas palavras por que o código abaixo não compila e corrija-o.

```rust
// Não compila — entenda o porquê
fn main() {
    let s1 = String::from("rust");
    let s2 = s1;
    println!("{s1}"); // erro: s1 foi movida
}
```

### Módulo 3 — Structs, enums e pattern matching

Estruture dados com `struct` (registro) e `enum` (tipo soma), e use `match` para lidar com cada variante. Entenda `Option<T>` (ausência de valor sem null) e como enums substituem herança. Tutorial: [structs, enums e pattern matching](/tutoriais/structs-enums-pattern-matching/).

**Critério:** modele uma `enum Forma` com variantes `Circulo(f64)`, `Retangulo { largura: f64, altura: f64 }` e uma função que calcula a área com `match`.

### Módulo 4 — Traits e generics

Traits definem comportamento compartilhado (interfaces) e generics permitem escrever código que funciona com qualquer tipo, sem perder a checagem estática. Entenda `impl Trait`, `dyn Trait`, trait bounds e os traits da biblioteca padrão (`Clone`, `Debug`, `Display`, `Iterator`). Tutoriais: [traits e generics](/tutoriais/traits-generics/) e o [guia completo de traits com exemplos](/blog/traits-rust-guia-completo-exemplos/).

**Critério:** escreva um trait `Resumivel` com método `resumo(&self) -> String` e implemente-o para duas structs diferentes.

### Módulo 5 — Tratamento de erros

Rust não tem exceções: erros são valores representados por `Result<T, E>` e o operador `?` propaga falhas de forma limpa. Aprenda quando usar a biblioteca padrão e quando adicionar **anyhow** (erros de aplicação) e **thiserror** (erros de biblioteca). Tutorial: [tratamento de erros](/tutoriais/tratamento-de-erros/) e o guia de [thiserror e anyhow](/blog/tratamento-erros-rust-thiserror-anyhow/).

```rust
use std::fs;

fn ler_config(caminho: &str) -> Result<String, std::io::Error> {
    let conteudo = fs::read_to_string(caminho)?;
    Ok(conteudo)
}
```

**Critério:** escreva uma função que lê um arquivo e retorna `Result`, propagando o erro com `?`.

### Módulo 6 — Coleções, iterares e estruturas de dados

Domine `Vec<T>`, `HashMap<K, V>`, `String`, iterares preguiçososos e os métodos de `Iterator` (`map`, `filter`, `collect`, `fold`). Para além do básico, estude [estruturas de dados em Rust](/estruturas-dados/), [algoritmos clássicos](/algoritmos/) e [padrões de projeto](/padroes/) na prática.

**Critério:** use `filter` + `map` + `collect` para extrair, de um `Vec<&str>`, apenas as palavras com mais de 4 letras em maiúsculas.

### Módulo 7 — Concorrência e programação assíncrona

Rust promete *fearless concurrency* ("concorrência sem medo"): o compilador impede data races em tempo de compilação. Estude threads, canais (`std::sync::mpsc`), `Mutex` e `Arc`, e depois entre no mundo assíncrono com `async`/`await` e o runtime **Tokio**. Tutoriais: [concorrência](/tutoriais/concorrencia/) e as referências de [Tokio](/ecossistema/tokio/) e [crossbeam](/ecossistema/crossbeam/).

**Critério:** escreva um programa que lança duas threads, cada uma incrementa um contador compartilhado em `Arc<Mutex<u64>>` 1 milhão de vezes, e imprime o total.

### Módulo 8 — O ecossistema: Cargo, crates e serde

Aprenda a gerenciar dependências com **Cargo**, a ler o `Cargo.toml`, a publicar no crates.io e a serializar dados com **serde** (JSON, YAML, TOML). Entenda **clap** para CLIs robustas. Referências: [Cargo](/ecossistema/cargo/), [serde](/ecossistema/serde/), [clap](/ecossistema/clap/) e o tutorial de [CLI com clap](/tutoriais/cli-com-clap/).

**Critério:** adicione `serde` e `serde_json` ao projeto, defina uma `struct` com `#[derive(Serialize, Deserialize)]` e faça a conversão para JSON e de volta.

### Módulo 9 — Web e APIs com Axum

Construa APIs HTTP modernas com **Axum**, o framework web mais usado na stack Tokio. Aprenda rotas, extratores, handlers `async`, middleware, estado compartilhado e tratamento de erros HTTP. Tutoriais: [API REST com Axum](/tutoriais/api-rest-axum/), referência de [Axum](/ecossistema/axum/) e conexão com banco via [sqlx](/ecossistema/sqlx/) no tutorial de [Rust com PostgreSQL](/tutoriais/rust-postgresql/).

**Critério:** crie uma API com rota `GET /saude` retornando `200 OK` e outra `GET /usuarios/:id` retornando um JSON.

### Módulo 10 — WebAssembly, testes e qualidade

Compile Rust para **WebAssembly** para rodar no navegador, escreva testes com `cargo test` e domine boas práticas de validação (proptest, fuzzing). Tutoriais: [WebAssembly com Rust](/tutoriais/webassembly-rust/), referência de [wasm-bindgen](/ecossistema/wasm-bindgen/) e [testes em Rust](/tutoriais/testes-rust/). Consulte também o [guia de erros comuns](/erros/) quando o compilador gritar.

**Critério:** escreva uma função com dois testes unitários (`#[test]`) e rode com `cargo test`.

### Módulo 11 — Projetos práticos e portfólio

A teoria só vira habilidade com projeto terminado. Escolha um destes, publique no GitHub e coloque no currículo:

- **Gerador de arte ASCII**, ensinando CLI, strings e `clap` (veja o projeto de [gerador de arte ASCII](/projetos/gerador-arte-ascii/));
- **Emulador de Chip-8**, ensinando arquitetura, máquinas de estado e rendering (veja o [emulador de Chip-8](/projetos/chip8-emulator/));
- **API REST de tarefas** com Axum + sqlx + PostgreSQL (tutorial de [API REST CRUD](/projetos/api-rest-crud/));
- **CLI de produtividade**, com `clap`, arquivos e serde.

Termine 2 ou 3 projetos, documente o `README`, adicione testes e publique. Esse portfólio vale mais que qualquer certificado. Veja também o [guia de portfólio no GitHub](/carreira/portfolio-github/) e o de [projetos práticos para aprender Rust](/carreira/projetos-praticos-rust/).

## Quanto tempo leva o curso

Não existe prazo fixo, mas é possível estabelecer um ritmo realista para quem estuda de **1 a 2 horas por dia**:

| Fase | Módulos | Duração típica |
|------|---------|----------------|
| **Fundamentos** | 0 a 3 | 3 a 5 semanas |
| **Intermediário** | 4 a 6 | 3 a 5 semanas |
| **Avançado** | 7 a 9 | 4 a 6 semanas |
| **Portfólio** | 10 a 11 | 2 a 4 semanas (contínuo) |

Programadores com bagagem em C, C++, Go, Java ou Python avançam mais rápido na sintaxe, mas travam nos mesmos pontos de borrowing e lifetimes — são conceitos próprios do Rust. Se você vem do JavaScript ou Python, reserve tempo extra no Módulo 2 e confira nossos comparativos: [Rust vs JavaScript 2026](/blog/rust-vs-javascript-2026/), [Rust vs Python 2026](/blog/rust-vs-python-2026/), [Rust vs Go 2026](/blog/rust-vs-go-2026/) e [Rust vs C++ 2026](/blog/rust-vs-cpp-2026/).

## Onde praticar e tirar dúvidas

O curso fica mais rápido com comunidade. Participe do **Discord da Rust Brasil** ([/comunidade/](/comunidade/)), consulte o [glossário](/glossario/) quando um termo for novo, use a [busca do site](/busca/) para achar receitas específicas e explore as [receitas de código](/receitas/) prontas para copiar e adaptar. Para quem quer vagas, a seção de [vagas de Rust](/vagas/) reúne oportunidades júnior, pleno e sênior no Brasil e remotas.

## Comece agora

Você não precisa de mais nada para iniciar: instale o Rust, abra o [tutorial de primeiros passos](/tutoriais/primeiros-passos/) e rode o primeiro `cargo run` ainda hoje. Um curso de Rust em português, gratuito e do zero ao avançado existe — e começa no próximo comando que você digitar. Boa jornada, e até no Discord.

*Este artigo é atualizado conforme o ecossistema evolui. Para receber novidades sobre novos tutoriais e vagas, acompanhe a [comunidade Rust Brasil](/comunidade/) e o [blog](/blog/).*
