Categoria

Rust

Regras de ownership e move semantics
Rust

Regras de ownership e move semantics

O sistema de ownership é o recurso mais distintivo do Rust, responsável por garantir segurança de memória sem a necessidade de um garbage collector. Em vez de confiar em coleta automática como Java/Go ou gerenciamento manual como C/C++, Rust utiliza um conjunto de regras verificadas em tempo de compilação que determinam como a memória é gerenciada.

05/05/2026
Projeto final: CLI de alta performance com Tokio e tratamento de erros robusto
Rust 05/05/2026

Projeto final: CLI de alta performance com Tokio e tratamento de erros robusto

Este projeto final consiste em uma CLI (Command Line Interface) em Rust que processa arquivos de forma assíncrona, utilizando concorrência controlada para máxima performance. O objetivo é construir uma ferramenta de linha de comando que leia múltiplos arquivos, execute transformações e gere saídas formatadas — tudo com tratamento de erros robusto e feedback visual ao usuário.

Property-based testing com proptest
Rust 05/05/2026

Property-based testing com proptest

O testing tradicional, conhecido como example-based testing, consiste em escrever casos de teste com entradas específicas e verificar saídas esperadas. Por exemplo, testamos soma(2, 2) e esperamos 4. Esse abordagem é intuitiva, mas limitada: ficamos reféns dos nossos próprios vieses e frequentemente deixamos de explorar casos extremos.

Publicando uma crate no crates.io
Rust 05/05/2026

Publicando uma crate no crates.io

Antes de publicar sua crate no crates.io, é essencial organizar o projeto corretamente. A estrutura padrão gerada por cargo new já é suficiente, mas você deve garantir que todos os metadados no Cargo.toml estejam completos.

Rate limiting com tower-governor ou custom middleware
Rust 05/05/2026

Rate limiting com tower-governor ou custom middleware

Rate limiting é uma técnica fundamental para proteger APIs contra abusos, garantir qualidade de serviço e prevenir ataques de negação de serviço. Em sistemas assíncronos Rust, onde concorrência é a norma, controlar a taxa de requisições torna-se ainda mais crítico.

Rc<T> e Arc<T>: múltiplos owners
Rust 05/05/2026

Rc<T> e Arc<T>: múltiplos owners

No modelo de ownership padrão do Rust, cada valor tem exatamente um dono. Quando o dono sai de escopo, o valor é dropado. Isso é ótimo para segurança de memória, mas limitante para certos cenários.

Pattern matching com match
Rust 05/05/2026

Pattern matching com match

O match em Rust é muito mais que um simples switch-case. Ele é uma expressão que pode retornar valores, permitindo que cada braço defina um padrão a ser comparado com o valor de entrada.

Pin e Unpin: entendendo self-referential structs
Rust 05/05/2026

Pin e Unpin: entendendo self-referential structs

Em Rust, a segurança de memória depende de uma regra simples: mover um valor invalida todas as referências para ele. Quando uma struct contém um ponteiro para um de seus próprios campos, mover essa struct quebra esse ponteiro internamente, criando um dangling pointer — comportamento indefinido (UB).

Option: eliminando null
Rust 05/05/2026

Option: eliminando null

Em 1965, o cientista da computação Tony Hoare introduziu o conceito de referências nulas em sua linguagem ALGOL W. Décadas depois, ele próprio classificou essa invenção como seu "erro de um bilhão de dólares". O motivo? null é a fonte mais comum de falhas catastróficas em software: o temido NullPointerException em Java, NullReferenceException em C#, ou segmentation faults em C/C++.

ORM com Diesel: schema e migrations
Rust 05/05/2026

ORM com Diesel: schema e migrations

Diesel é o ORM (Object-Relational Mapping) mais maduro e performático do ecossistema Rust. Ele se destaca por oferecer type safety em tempo de compilação — se sua query está errada, o código nem compila — e zero-cost abstractions, garantindo que o overhead seja mínimo em relação a SQL puro.