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

Box<T>

Nesta aula, exploramos o smart pointer Box<T> em Rust, que permite alocar dados na heap. Abordamos sua utilidade para tipos recursivos, o padrão de implementação Deref para acesso transparente ao valor interno e as situações ideais para seu uso.

✓ Lido
Rust

RefCell e mutabilidade interior

Esta aula aborda o padrão de mutabilidade interior em Rust, focando no tipo RefCell<T>. Explica como borrow() e borrow_mut() permitem violar as regras de empréstimo em tempo de compilação, delegando a verificação para o runtime, e como combiná-lo com Rc<T> para criar dados mutáveis compartilhados. Também discute os riscos de pânico e vazamento de referências.

✓ Lido
Rust

Rc<T>: contagem de referências

Esta aula explora Rc<T>, um smart pointer de Rust que permite compartilhamento de ownership via contagem de referências. Aborda como Rc::clone funciona, suas limitações (apenas thread-local, sem mutabilidade compartilhada) e casos de uso típicos como grafos e árvores.

✓ Lido
Rust

Iteradores

Esta aula cobre o trait Iterator em Rust, o método next, adaptadores como map e filter, e o conceito de lazy evaluation. Você aprenderá a criar e combinar iteradores de forma eficiente e idiomática.

✓ Lido
Rust

Deref e Drop

Esta aula aborda os traits Deref e Drop em Rust, explicando como o primeiro possibilita a coerção de desreferência e o segundo permite a execução de código na destruição de um valor. Também são discutidas a ordem de execução dos drops e a função std::mem::drop, com exemplos práticos e exercícios.

✓ Lido
Rust

Threads

Esta aula aborda a criação e gerenciamento de threads em Rust, incluindo spawn, join, o uso de move em closures, compartilhamento de dados com Arc<Mutex<T>> e os riscos de concorrência como deadlocks e data races. O objetivo é capacitar o aluno a escrever programas concorrentes seguros e eficientes.

✓ Lido
Rust

Arc e Mutex

Esta aula aborda o compartilhamento seguro de dados entre threads em Rust usando Arc e Mutex, explicando as diferenças entre Arc e Rc, o mecanismo de Mutex e o fenômeno de poisoning, além de como evitar deadlocks.

✓ Lido
Rust

Canais (channels)

Esta aula aborda o uso de canais (channels) em Rust para comunicação entre threads, com foco no módulo `std::sync::mpsc`. Serão explicados os conceitos de `mpsc`, as funções `send` e `recv`, suporte a múltiplos produtores e padrões de uso comuns.

✓ Lido
Rust

Send e Sync

Esta aula explica as traits Send e Sync do Rust, que controlam a transferência e o compartilhamento de dados entre threads. São mecanismos de segurança em tempo de compilação que previnem corridas de dados e outras condições de concorrência.

✓ Lido
Rust

Cargo avançado

Nesta aula, você vai dominar o Cargo além do básico: features para compilação condicional, profiles para otimizações distintas, dependências de desenvolvimento e scripts de build personalizados. Vamos explorar cada tópico com exemplos práticos e configurações reais.

✓ Lido