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.
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
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
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
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
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
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
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
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
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