Categoria

Rust

Interoperabilidade com Python: PyO3 e bindings
Rust

Interoperabilidade com Python: PyO3 e bindings

PyO3 é a principal biblioteca para criar bindings entre Rust e Python, permitindo que código Rust seja chamado diretamente do Python com performance nativa. Diferentemente de abordagens como ctypes (que requer wrappers manuais) ou CFFI (que depende de interfaces C), PyO3 oferece integração profunda com o sistema de tipos de ambas as linguagens, gerenciamento automático de memória via contagem de referências do Python, e suporte a async/await.

05/05/2026
Iteradores lazy vs eager
Rust 05/05/2026

Iteradores lazy vs eager

A avaliação lazy (preguiçosa) ocorre quando um cálculo é adiado até que seu resultado seja realmente necessário. Já a avaliação eager (ansiosa) executa toda a computação imediatamente, independentemente de o resultado ser usado ou não.

Iteradores: o trait Iterator
Rust 05/05/2026

Iteradores: o trait Iterator

Em Rust, um iterador é qualquer tipo que implementa o trait Iterator. Este trait é definido na biblioteca padrão e possui um método fundamental obrigatório: next. A assinatura básica é:

Kernel development com Rust: o futuro do Linux
Rust 05/05/2026

Kernel development com Rust: o futuro do Linux

O kernel Linux, escrito predominantemente em C, é uma das maiores bases de código existentes — mais de 30 milhões de linhas. Estatísticas do projeto indicam que cerca de 70% das vulnerabilidades de segurança descobertas no kernel são causadas por erros de gerenciamento de memória: use-after-free, buffer overflows, double frees e ponteiros nulos. Em C, o programador é responsável manualmente por alocar, liberar e validar toda memória — uma tarefa hercúlea em um sistema com milhares de paths de ex

HashMaps e suas operações
Rust 05/05/2026

HashMaps e suas operações

O HashMap<K, V> é uma estrutura de dados que armazena pares chave-valor, permitindo inserção, busca e remoção com complexidade média O(1). É ideal para situações onde você precisa associar valores a chaves únicas e realizar consultas rápidas.

Hello World e a estrutura de um projeto Rust
Rust 05/05/2026

Hello World e a estrutura de um projeto Rust

Toda jornada em uma nova linguagem de programação começa com o tradicional "Hello, World!". Em Rust, esse ritual não poderia ser mais direto. Crie um arquivo chamado main.rs e insira o seguinte código:

HTTP client com reqwest
Rust 05/05/2026

HTTP client com reqwest

O reqwest é a biblioteca HTTP client mais popular do ecossistema Rust, oferecendo uma API ergonômica, assíncrona e type-safe para realizar requisições HTTP. Construída sobre o hyper e tokio, ela fornece suporte nativo a TLS (via rustls ou native-tls), cookies, redirecionamentos e compressão.

HTTP server com Axum ou Actix-web
Rust 05/05/2026

HTTP server com Axum ou Actix-web

Rust oferece múltiplas opções para construção de servidores HTTP, mas Axum e Actix-web emergiram como os frameworks mais robustos e amplamente adotados. Ambos aproveitam o sistema de tipos do Rust para garantir segurança em tempo de compilação, prevenindo erros comuns como vazamentos de memória e condições de corrida. Axum, construído sobre a biblioteca Tower, integra-se perfeitamente com o ecossistema Tokio e oferece uma abordagem modular e composicional. Actix-web, por sua vez, é conhecido por

If let e while let
Rust 05/05/2026

If let e while let

Em Rust, o match é uma ferramenta poderosa para lidar com padrões, mas pode se tornar verboso quando você está interessado em apenas um único caso. Considere o tratamento de Option<T>:

Implementando traits em tipos
Rust 05/05/2026

Implementando traits em tipos

Em Rust, traits são o mecanismo principal para definir comportamento compartilhado entre tipos. A implementação de um trait segue a sintaxe impl <Trait> for <Tipo>: