Tutorial Rust em Português: do Zero ao Avançado

Tutorial Rust em português, do primeiro programa a APIs com Axum. Siga uma trilha prática sobre ownership, erros, traits, testes, concorrência e WebAssembly.

Para aprender Rust do zero, instale a linguagem, domine ownership e tratamento de erros, pratique traits e testes e só então avance para concorrência, APIs e WebAssembly. Esta trilha reúne os tutoriais em português do Rust Brasil em uma ordem que evita pular fundamentos importantes. Se você já programa, comece pelos primeiros passos; se está conhecendo a linguagem agora, faça antes a instalação completa.

Trilha rápida: qual tutorial estudar agora?

Seu objetivoComece porContinue com
Escrever o primeiro programaInstalando RustPrimeiros passos
Entender a sintaxeVariáveis, tipos e funçõesStructs, enums e pattern matching
Dominar o diferencial do RustOwnership e borrowingTratamento de erros
Escrever código reutilizávelTraits e genericsTestes em Rust
Criar software concorrenteConcorrência em RustAPI REST com Axum
Trabalhar com backend e dadosAPI REST com AxumRust com PostgreSQL
Compilar para o navegadorWebAssembly com RustProjetos práticos

Etapa 1: prepare o ambiente e aprenda a sintaxe

Comece instalando rustup, rustc e Cargo. O tutorial Como instalar Rust cobre Linux, macOS e Windows, além da configuração do VS Code com rust-analyzer. Depois, em Primeiros passos com Rust, você cria um projeto, entende cargo run, compila o primeiro programa e conhece a estrutura básica de um pacote.

A seguir, estude variáveis, tipos e funções. Essa etapa apresenta imutabilidade, shadowing, tipos escalares e compostos, expressões e retorno de funções. O objetivo não é decorar toda a sintaxe, mas conseguir ler um programa pequeno e alterar seu comportamento sem depender de copiar código pronto.

Resultado esperado: você consegue criar um projeto com Cargo, editar src/main.rs, interpretar mensagens simples do compilador e executar o programa localmente.

Etapa 2: domine ownership, structs e erros

O sistema de ownership e borrowing é o conceito central de Rust. Ele permite segurança de memória sem garbage collector, mas exige entender quem possui cada valor, quando uma referência pode ser usada e por que o compilador rejeita determinados acessos. Reserve tempo para escrever exemplos com String, empréstimos imutáveis e mutáveis e slices.

Depois, aprenda a modelar domínio com structs, enums e pattern matching. Enums como Option<T> e Result<T, E> aparecem em praticamente todo projeto real. Eles se conectam diretamente ao tutorial de tratamento de erros, que mostra match, o operador ? e a criação de erros claros sem recorrer a exceções.

Uma sequência eficiente é:

  1. criar uma struct para representar um dado do programa;
  2. usar um enum para representar estados possíveis;
  3. retornar Result nas operações que podem falhar;
  4. corrigir os avisos de cargo clippy antes de avançar.

Resultado esperado: você entende erros comuns do borrow checker, evita unwrap() indiscriminado e consegue modelar estados válidos no sistema de tipos.

Etapa 3: escreva abstrações e testes

Com os fundamentos consolidados, avance para traits e generics. Traits descrevem comportamentos compartilhados; generics permitem reutilizar código sem perder segurança de tipos ou desempenho. Você verá trait bounds, impl Trait, cláusulas where, implementações padrão e a diferença entre dispatch estático e dinâmico.

Em seguida, use testes em Rust para transformar exemplos em código confiável. Pratique testes unitários, testes de integração, assert_eq!, casos que devem falhar e organização do diretório tests/. Executar cargo test desde o início torna a evolução do projeto mais segura e cria uma habilidade valorizada em revisão de código e processos seletivos.

Se o objetivo é criar ferramentas de terminal, o tutorial de CLI com Clap combina bem com esta etapa: argumentos tipados, mensagens de ajuda e erros testáveis formam um projeto de portfólio pequeno, mas completo.

Etapa 4: escolha uma aplicação avançada

Depois da base, escolha uma direção conforme o tipo de software que deseja construir:

  • Concorrência e sistemas: estude threads, canais, Arc, Mutex e async. O compilador ajuda a impedir data races, mas ainda é necessário escolher corretamente entre paralelismo, concorrência e I/O assíncrono.
  • Backend: construa uma API REST com Axum e conecte-a ao PostgreSQL com Rust. Você praticará rotas, JSON, estado compartilhado, SQL, migrations e tratamento de falhas.
  • WebAssembly: siga o guia de Rust e WebAssembly para compilar código Rust para o navegador e integrá-lo a JavaScript.

Não tente estudar todas as áreas ao mesmo tempo. Um projeto concluído com README, testes e instruções de execução ensina mais do que vários tutoriais lidos sem prática. A seção de projetos em Rust oferece ideias para aplicar cada etapa, de utilitários de linha de comando a emuladores e serviços web.

Como estudar Rust sem travar

Use um ciclo curto: leia um conceito, execute o exemplo, altere uma regra e observe a mensagem do compilador. Em Rust, os erros de compilação são parte do material didático. Quando o borrow checker rejeitar um programa, procure identificar a duração da referência e o proprietário do valor antes de adicionar .clone() apenas para silenciar o erro.

Para uma rotina consistente:

  • estude de 30 a 60 minutos por sessão;
  • digite os exemplos em vez de apenas copiá-los;
  • rode cargo fmt, cargo clippy e cargo test;
  • mantenha um projeto pequeno durante toda a trilha;
  • consulte a documentação de Rust em português quando precisar revisar um conceito;
  • acompanhe vagas Rust para identificar ferramentas e competências pedidas pelo mercado.

Perguntas frequentes

Qual é a melhor ordem para aprender Rust?

A ordem recomendada é: instalação, Cargo e sintaxe básica; ownership e borrowing; structs, enums e erros; traits e generics; testes; depois uma especialização como concorrência, backend ou WebAssembly. Essa sequência reduz a dificuldade porque cada tutorial reutiliza conceitos anteriores.

Rust é difícil para iniciantes?

Rust tem uma curva inicial maior que linguagens com garbage collector, principalmente por ownership e lifetimes. Em compensação, o compilador aponta muitos problemas antes da execução. Avançar com programas pequenos e testar cada conceito separadamente torna o aprendizado mais previsível.

Quanto tempo leva para aprender Rust?

Em poucas semanas de prática regular é possível escrever CLIs e projetos básicos. Para trabalhar com backend, sistemas ou código assíncrono em produção, conte com alguns meses de projetos, testes, leitura de crates e depuração. O tempo depende mais da prática deliberada do que da quantidade de conteúdo consumido.

Preciso saber C ou C++ antes de Rust?

Não. Experiência com outra linguagem ajuda, mas não é requisito. Quem vem de Python, JavaScript, Java, Go ou Kotlin pode aprender Rust diretamente. Conceitos de memória e concorrência serão apresentados durante a trilha.

O que construir depois dos tutoriais?

Comece com uma CLI, uma API CRUD ou um processador de arquivos. Depois adicione testes, persistência, logs e CI. Para escolher algo adequado ao seu nível, consulte os projetos práticos em Rust e transforme um deles em portfólio público.

rust

Como instalar Rust: Windows, Linux e macOS

Para instalar Rust, use o rustup: no Windows, baixe o rustup-init.exe em rustup.rs; no Linux e macOS, execute o instalador oficial no terminal. Ele instala o …

rust

Variáveis, Tipos Primitivos e Funções em Rust

Neste tutorial, vamos explorar os blocos fundamentais de qualquer programa Rust: variáveis, tipos de dados e funções. Se você vem de outras linguagens, vai …

rust

Ownership e Borrowing em Rust: Tutorial

Se existe um conceito que define o Rust e o diferencia de todas as outras linguagens, é o sistema de ownership (propriedade). É graças a esse sistema que o Rust …

rust

Structs, Enums e Pattern Matching em Rust

Structs e enums são as ferramentas fundamentais para modelar dados em Rust. Combinados com pattern matching, eles permitem escrever código expressivo, seguro e …

rust

Tratamento de Erros em Rust: Result e Option

Rust adota uma abordagem única para tratamento de erros: em vez de exceções (como Java/Python) ou códigos de retorno (como C), Rust usa tipos algébricos — …

rust

Traits e Generics em Rust: Tutorial

Introdução Traits e generics são dois dos recursos mais poderosos do Rust. Juntos, eles permitem escrever código altamente reutilizável, seguro em tempo de …

rust

Concorrência em Rust: Threads e Async

Introdução Uma das grandes promessas do Rust é a concorrência sem medo (fearless concurrency). O sistema de ownership e types do Rust previne data races em …

rust

API REST com Axum em Rust: Tutorial

Introdução Axum é um framework web para Rust criado pela equipe do Tokio. Ele se destaca pela ergonomia, performance e integração nativa com o ecossistema …

rust

Rust com PostgreSQL: Tutorial Completo com SQLx

Introdução PostgreSQL é um dos bancos de dados relacionais mais robustos e populares do mercado. Combinado com Rust, temos uma stack de altíssima performance e …