Categoria: Rust

Rust é uma linguagem de programação moderna construída sobre três pilares: segurança de memória, desempenho e concorrência. Foi projetada para ocupar o espaço de C e C++ em sistemas onde a eficiência é crítica, eliminando ainda em tempo de compilação os erros clássicos de gerenciamento de memória — e sem precisar de coletor de lixo. O caminho oficial para começar é o livro The Rust Programming Language.

Rust

Closures

Esta aula aborda closures em Rust, incluindo sintaxe, captura do ambiente, as traits Fn, FnMut e FnOnce, e a palavra-chave move. O conteúdo é aprofundado com exemplos práticos e exercícios.

✓ Lido
Rust

Iteradores avançado

Esta aula aprofunda o uso de iteradores em Rust, abordando métodos avançados como collect com turbofish, fold, zip e enumerate, além de ensinar como criar iteradores personalizados e discutir considerações de performance. O conteúdo inclui exemplos práticos e exercícios para fixação.

✓ Lido
Rust

Iteradores

Esta aula aborda o trait Iterator em Rust, seu método next e os principais adaptadores como map e filter, destacando a lazy evaluation. O aluno aprenderá a criar e combinar iteradores de forma eficiente.

✓ Lido
Rust

Arc e Mutex

Esta aula aborda o compartilhamento de dados entre threads em Rust usando Arc e Mutex. Você aprenderá a diferença entre Arc e Rc, como usar Mutex com proteção contra poisoning e como evitar deadlocks.

✓ Lido
Rust

RefCell e mutabilidade interior

Nesta aula, exploramos o padrão de mutabilidade interior em Rust usando RefCell<T>, que permite mutabilidade mesmo com referências imutáveis, transferindo a verificação de borrows para o runtime. Aprendemos a usar borrow e borrow_mut, combinamos Rc<RefCell<T>> para ter múltiplas referências mutáveis, e discutimos os riscos como panics em runtime e possíveis vazamentos de memória.

✓ Lido
Rust

Deref e Drop

Esta aula aborda as traits Deref e Drop do Rust, fundamentais para sobrecarregar o operador de desreferência (*) e gerenciar a limpeza de recursos. Aprenderemos sobre coerção de Deref, ordem de execução de Drop e a função std::mem::drop.

✓ Lido
Rust

Rc<T>: contagem de referências

Esta aula aborda o tipo Rc<T> (Reference Counted) do Rust, que permite o compartilhamento de ownership de um valor imutável através de contagem de referências. Veremos como criar, clonar e usar Rc<T>, suas limitações (apenas acesso imutável, sem garantia de ausência de ciclos) e casos de uso típicos, como em grafos ou árvores.

✓ Lido
Rust

Canais (channels)

Nesta aula, exploramos canais (channels) em Rust, focando no módulo mpsc (múltiplos produtores, único consumidor). Aprendemos a usar send e recv para comunicação entre threads, lidar com múltiplos produtores e aplicar padrões como roteamento de mensagens e sincronização.

✓ Lido
Rust

Threads

Nesta aula, exploramos o uso de threads em Rust com spawn e join, o uso da palavra-chave move em closures, o compartilhamento seguro de dados entre threads, e os riscos de concorrência como data races. Aprenderemos a criar programas concorrentes de forma segura utilizando o sistema de tipos do Rust.

✓ Lido
Rust

Send e Sync

Esta aula explora as traits Send e Sync do Rust, fundamentais para garantir segurança de concorrência. Você aprenderá o que essas traits garantem, por que são importantes, quais tipos não as implementam e como elas se relacionam com a segurança de concorrência.

✓ Lido
Rust

Async/await: introdução

Esta aula introduz programação assíncrona em Rust, explicando Futures, async/await, o runtime Tokio e as diferenças entre threads e tarefas assíncronas. Você aprenderá a escrever código não bloqueante e eficiente.

✓ Lido
Rust

Tokio na prática

Nesta aula, você aprenderá a usar o Tokio na prática, desde a configuração do runtime até a criação de tarefas assíncronas e operações de I/O, com exemplos reais e exercícios para fixar o conteúdo.

✓ Lido
Rust

Módulos e visibilidade

Nesta aula, exploramos o sistema de módulos do Rust, que organiza o código em unidades lógicas e controla a visibilidade de itens. Aprendemos a declarar módulos com 'mod', tornar itens públicos com 'pub', importar caminhos com 'use', e navegar por caminhos absolutos e relativos. Ao final, você será capaz de estruturar projetos Rust de forma modular e eficiente.

✓ Lido
Rust

Cargo avançado

Nesta aula, você aprenderá a dominar o Cargo, o gerenciador de builds e dependências do Rust. Exploraremos recursos avançados como features, perfis de compilação, dependências de desenvolvimento e scripts de build, permitindo que você configure projetos complexos de forma profissional e eficiente.

✓ Lido
Rust

Crates e workspaces

Nesta aula, você aprenderá a diferenciar crates binários e de biblioteca, a criar e gerenciar workspaces no Rust e a organizar projetos grandes de forma modular e eficiente. Vamos explorar a estrutura de um workspace, como declarar dependências entre crates e boas práticas para manter o código limpo e escalável.

✓ Lido