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

Clippy e rustfmt

Nesta aula, você aprenderá a usar o Clippy e o rustfmt, ferramentas essenciais para escrever código Rust limpo e consistente. Exploraremos lints úteis, configuração, formatação automática e integração com CI, com exemplos práticos e exercícios.

Lido
Rust

Layout de memória

Esta aula explora o layout de memória em Rust, abordando a organização interna de structs, enums e tipos compostos. Você aprenderá sobre os atributos repr(C) e repr(Rust), alinhamento, as funções size_of e align_of, e como o compilador otimiza o layout para reduzir o uso de memória.

Lido
Rust

Futures em profundidade

Esta aula mergulha nos fundamentos do modelo assíncrono do Rust, explorando o trait Future, o mecanismo de Poll, os estados de uma future e a importância do Pin para garantir segurança em operações assíncronas. Ao final, você terá uma compreensão sólida de como as futures funcionam internamente e como elas se relacionam com o executor.

Lido
Rust

Canais assíncronos

Nesta aula, exploramos os canais assíncronos em Rust, focando nas primitivas do tokio::sync: mpsc, oneshot e broadcast. Aprendemos quando usar cada tipo de canal e como o conceito de backpressure é fundamental para sistemas robustos.

Lido
Rust

Async em traits

Nesta aula, exploramos o suporte a async fn em traits no Rust, desde os desafios históricos até o estado atual com a sintaxe estável, incluindo alternativas como async-trait e boxed futures, com exemplos práticos e exercícios para fixação.

Lido
Rust

Tarefas e concorrência com Tokio

Esta aula explora a concorrência assíncrona em Rust usando Tokio, cobrindo spawn vs spawn_blocking, a macro select!, cancelamento de tarefas e timeouts. Você aprenderá a criar tarefas concorrentes, lidar com operações bloqueantes, combinar múltiplos futuros e controlar o tempo de execução, com exemplos práticos e exercícios.

Lido
Rust

Streams

Nesta aula, exploramos o trait Stream da biblioteca padrão do Rust, que permite processar sequências assíncronas de valores. Aprendemos a usar adaptadores como map, filter e take, e consumidores como next e collect, além de discutir casos de uso práticos para streams em aplicações assíncronas.

Lido
Rust

Projeto: ferramenta de linha de comando

Nesta aula, você construirá uma ferramenta de linha de comando em Rust, aprendendo a estruturar o projeto, usar a crate clap para parsing de argumentos, ler arquivos e formatar a saída. O objetivo é consolidar os conceitos em um projeto prático e reutilizável.

Lido
Rust

Projeto: um parser simples

Nesta aula, você construirá um parser simples em Rust, aprendendo a tokenizar uma string, gerenciar estado de parsing, usar enums para representar tokens e escrever testes. O projeto final é um interpretador de expressões aritméticas básicas.

Lido
Rust

Rust e WebAssembly (introdução)

Esta aula apresenta uma introdução ao WebAssembly (WASM) e seu uso com Rust. Você aprenderá o que é WASM, como usar a ferramenta wasm-bindgen para criar módulos WASM a partir de Rust, casos de uso práticos e limitações importantes. Ao final, terá uma base sólida para começar a escrever aplicações web de alto desempenho com Rust.

Lido
Rust

Rust embarcado (introdução)

Esta aula apresenta uma introdução ao desenvolvimento embarcado com Rust, abordando o ambiente no_std, a camada de abstração de hardware (HAL), as vantagens de Rust em sistemas embarcados e o ecossistema de ferramentas e crates disponíveis. O aluno aprenderá na prática como escrever código sem sistema operacional e compreenderá a estrutura básica de um projeto embarcado.

Lido
Rust

Padrões de projeto idiomáticos

Esta aula explora padrões de projeto idiomáticos em Rust, focando em RAII, Builder, Strategy com traits e Visitor. Você aprenderá a aplicar esses padrões de forma eficiente, aproveitando os recursos exclusivos da linguagem, como posse, empréstimo e traits, e entenderá quando cada padrão é mais adequado.

Lido