Bem-vindos ao Comprehensive Rust 🦀

Workflow do GitHub Contribuições no GitHub Estrelas no GitHub

Este é um curso gratuito de Rust desenvolvido pela equipe do Android no Google. O curso abrange o espectro completo da linguagem, desde sintaxe básica até tópicos avançados como ‘generics’ e tratamento de erros.

A versão mais recente do curso pode ser encontrada em https://google.github.io/comprehensive-rust/. Se você estiver lendo em outro lugar, por favor verifique lá por atualizações.

O curso está disponível em outros idiomas. Selecione seu idioma preferido no canto superior direito da página ou verifique a página de Traduções para uma lista de todas as traduções disponíveis.

O curso também está disponível como PDF.

O objetivo do curso é ensinar Rust a você. Nós assumimos que você não saiba nada sobre Rust e esperamos:

  • Dar a você uma compreensão abrangente da linguagem e da sintaxe de Rust.
  • Permitir que você modifique programas existentes e escreva novos programas em Rust.
  • Demonstrar expressões idiomáticas comuns de Rust.

Nós chamamos os quatro primeiros dias do curso de Fundamentos do Rust.

Em seguida, você está convidado(a) a mergulhar a fundo em um ou mais tópicos especializados:

  • Android: um curso de meio dia sobre a utilização de Rust no desenvolvimento para a plataforma Android (AOSP). Isto inclui interoperabilidade com C, C++ e Java.
  • Chromium: um curso de meio dia sobre a utilização de Rust em navegadores baseados em Chromium. Isto inclui interoperabilidade com C++ e como incluir crates de terceiros no Chromium.
  • Bare-metal: uma aula de um dia sobre a utilização de Rust para o desenvolvimento “bare metal” (sistema embarcado). Tanto micro-controladores quanto processadores de aplicação são cobertos.
  • Concorrência: uma aula de um dia inteiro sobre concorrência em Rust. Nós cobrimos tanto concorrência clássica (escalonamento preemptivo utilizando threads e mutexes) quanto concorrência async/await (multitarefa cooperativa utilizando futures).

Fora do escopo

Rust é uma linguagem extensa e não conseguiremos cobrir tudo em poucos dias. Alguns assuntos que não são objetivos deste curso são:

Premissas

O curso pressupõe que você já saiba programar. Rust é uma linguagem de tipagem estática e ocasionalmente faremos comparações com C e C++ para melhor explicar ou contrastar a abordagem do Rust.

Se você sabe programar em uma linguagem de tipagem dinâmica, como Python ou JavaScript, então você também será capaz de acompanhar.

Este é um exemplo de uma nota do instrutor. Nós as usaremos para adicionar informações complementares aos slides. Elas podem ser tanto pontos-chave que o instrutor deve cobrir quanto respostas a perguntas típicas que surgem em sala de aula.