Introdução
2025 tornou-se um ano marcante para o ecossistema Rust. A linguagem, que se estabeleceu firmemente nos nichos de programação de sistemas, WebAssembly (WASM) e ferramentas de linha de comando nos últimos anos, continua a se desenvolver ativamente. A equipe de desenvolvimento do Rust e a comunidade lançaram uma série de atualizações importantes que tornam a linguagem ainda mais performática, segura e conveniente.
Neste artigo, vamos detalhar as principais inovações do Rust em 2025: desde a estabilização dos iteradores assíncronos até melhorias no trabalho com WebAssembly e uma nova abordagem para macros. Quer você já conheça Rust ou esteja apenas conhecendo a linguagem, esta visão geral ajudará a entender para onde o ecossistema está caminhando.
Estabilização de Iteradores Assíncronos
Um dos eventos mais aguardados de 2025 foi a estabilização das traits AsyncIterator e AsyncIteratorExt. Anteriormente, trabalhar com fluxos de dados assíncronos só era possível através de crates de terceiros, como futures ou tokio-stream. Agora essa funcionalidade está embutida na biblioteca padrão.
O que mudou?
Agora você pode escrever geradores assíncronos e combiná-los com métodos padrão como map, filter, collect, diretamente no Rust estável. Isso reduz a barreira de entrada e diminui o número de dependências.
// Exemplo de uso de um iterador assíncrono estáveluse std::collections::VecDeque;
async fn process_stream() { let stream = async_stream::stream! { for i in 0..10 { yield i * 2; } };
// Usando métodos embutidos let result: Vec<i32> = stream .map(|x| async move { x + 1 }) .filter(|x| async move { *x > 5 }) .collect() .await;
println!("Resultado: {:?}", result);}Além disso, as traits FromAsyncIterator e IntoAsyncIterator foram estabilizadas, permitindo a conversão fácil de coleções síncronas para assíncronas e vice-versa. Isso é especialmente útil ao trabalhar com requisições de rede ou fluxos de arquivos.
Suporte Aprimorado para WebAssembly (WASM)
O ecossistema Rust e WASM deu um grande passo em frente em 2025. A principal inovação é o suporte nativo à interface WASI Preview 2 (WebAssembly System Interface). Anteriormente, WASI era majoritariamente experimental, mas agora foi estabilizado e recomendado para uso em produção.
O que isso oferece aos desenvolvedores?
- Acesso ao sistema de arquivos — WASI Preview 2 permite trabalhar com segurança com arquivos e diretórios, o que antes era uma limitação séria.
- Capacidades de rede — agora você pode criar servidores e clientes HTTP diretamente em WASM usando crates padrão.
- Desempenho melhorado — a nova ABI (Interface Binária de Aplicação) reduz a sobrecarga ao chamar funções entre o host e o módulo WASM.
// Exemplo de um servidor HTTP simples em WASM usando WASI Preview 2use wasi::http::handler;use wasi::http::types::{Request, Response};
fn main() { handler::serve(|req: Request| -> Response { Response::new() .with_status(200) .with_body(b"Olá do Rust em WASM!") });}Vale notar também a melhoria significativa nas ferramentas de construção. O wasm-pack recebeu uma atualização que permite a geração automática de tipos TypeScript para funções exportadas, simplificando a integração do código Rust com frameworks frontend.
Macros 2.0: Nova Sintaxe e Capacidades
O sistema de macros em Rust sempre foi poderoso, mas difícil de aprender. Em 2025, a equipe do Rust introduziu o Macros 2.0 — uma nova geração de macros declarativas projetada para substituir o antigo macro_rules!.