Categoria

Rust

Módulos e o sistema de visibilidade
Rust

Módulos e o sistema de visibilidade

Em Rust, módulos são a principal ferramenta para organizar código, encapsular implementações e promover reutilização. Eles permitem agrupar funcionalidades relacionadas, controlar o que é exposto como API pública e criar hierarquias lógicas dentro de um crate.

05/05/2026
Lifetime elision rules
Rust 05/05/2026

Lifetime elision rules

Lifetime elision é um mecanismo do compilador Rust que permite omitir anotações explícitas de lifetime em determinadas situações, desde que o compilador consiga inferi-las automaticamente. Essa funcionalidade reduz significativamente a verbosidade do código sem comprometer a segurança de memória.

Lifetimes: anotando a validade das referências
Rust 05/05/2026

Lifetimes: anotando a validade das referências

Em Rust, toda referência tem um tempo de vida — o período durante o qual ela é válida. O sistema de lifetimes existe para garantir que nenhuma referência aponte para dados que já foram liberados da memória, prevenindo o temido dangling reference.

Lifetimes em structs e impl
Rust 05/05/2026

Lifetimes em structs e impl

Em Rust, toda referência possui um lifetime — o período durante o qual ela é válida. Quando tentamos armazenar uma referência em uma struct sem anotar o lifetime, o compilador não consegue verificar se a referência ainda será válida quando a struct for usada. Considere o exemplo:

Logging com tracing e tracing-subscriber
Rust 05/05/2026

Logging com tracing e tracing-subscriber

O ecossistema tracing representa uma evolução significativa no logging para Rust, especialmente projetado para aplicações assíncronas e concorrentes. Diferente do crate log tradicional, que apenas registra eventos pontuais, tracing introduz dois conceitos fundamentais: spans e events.

Macros declarativas: macro_rules!
Rust 05/05/2026

Macros declarativas: macro_rules!

Macros em Rust são uma poderosa ferramenta de metaprogramação que permite gerar código em tempo de compilação. Diferente de funções comuns, macros operam sobre a árvore sintática abstrata (AST) do código, possibilitando transformações que vão além do que funções ou genéricos podem oferecer.

Macros procedurais: derive, attribute e function-like
Rust 05/05/2026

Macros procedurais: derive, attribute e function-like

Macros procedurais representam um dos recursos mais poderosos do sistema de metaprogramação de Rust. Diferentemente das macros declarativas (macro_rules!), que operam com pattern matching sobre tokens, as macros procedurais são funções Rust que recebem um TokenStream de entrada e produzem um TokenStream de saída, executando código arbitrário em tempo de compilação.

Instalando Rust com rustup e conhecendo o cargo
Rust 05/05/2026

Instalando Rust com rustup e conhecendo o cargo

O rustup é o instalador oficial e gerenciador de versões da linguagem Rust. Diferente de instalar pacotes manuais ou binários pré-compilados, o rustup oferece uma experiência unificada e multiplataforma para gerenciar toolchains do Rust.

Interoperabilidade com C: cbindgen e extern blocks
Rust 05/05/2026

Interoperabilidade com C: cbindgen e extern blocks

A interoperabilidade entre Rust e C é possível graças à compatibilidade na ABI (Application Binary Interface). Rust pode se comunicar diretamente com código C utilizando o bloco extern "C", que define a convenção de chamada e a representação binária esperada.

Interoperabilidade com Node.js: Neon e N-API
Rust 05/05/2026

Interoperabilidade com Node.js: Neon e N-API

A integração entre Rust e Node.js permite combinar a produtividade do ecossistema JavaScript com o desempenho e a segurança de memória que Rust oferece. Enquanto Node.js é excelente para I/O assíncrono e desenvolvimento rápido, aplicações que exigem processamento intensivo (criptografia, compressão, processamento de imagens, jogos) podem se beneficiar enormemente de módulos nativos escritos em Rust.