Lançado Rust 1.85: o que mudou no novo lançamento
A equipe de desenvolvedores do Rust apresentou mais uma atualização estável da linguagem — a versão 1.85. Este lançamento traz uma série de funcionalidades há muito aguardadas, que simplificam a escrita de código assíncrono, melhoram o desempenho e expandem o conjunto de ferramentas do desenvolvedor. Vamos analisar as principais mudanças.
Estabilização de async closures
Um dos principais destaques foi a estabilização das async closures — closures que podem ser assíncronas. Anteriormente, para retornar uma closure assíncrona, era necessário escrever manualmente assinaturas complexas com impl Future. Agora, o compilador suporta a sintaxe:
- async || { ... } — declaração direta de uma closure assíncrona.
- Fechamento automático de variáveis com suporte a lifetime.
- Compatibilidade com os traits
FnOnce,FnMuteFn.
Isso simplifica a escrita de manipuladores de eventos assíncronos, middlewares e funções de callback em frameworks web (por exemplo, Axum ou Actix).
Borrow checker aprimorado
No Rust 1.85, o analisador de empréstimos foi significativamente aprimorado. Agora ele entende melhor os casos em que uma variável é usada após uma movimentação parcial:
- É permitido emprestar campos individuais de uma struct, mesmo que outros campos já tenham sido movidos.
- Melhor tratamento de empréstimos aninhados em iteradores.
- Redução do número de avisos falsos em código com construções condicionais.
Isso é especialmente útil ao trabalhar com grandes estruturas de dados, onde é necessária propriedade parcial.
Novas funcionalidades de macros
O lançamento inclui a expansão do sistema de macros (proc macros):
- Adicionado suporte a token streams com capacidade de modificar posições no código-fonte.
- Simplificada a criação de macros de atributo para structs e enums.
- Melhor tratamento de erros dentro de macros — agora as mensagens são exibidas com indicação precisa da linha no código do usuário.
Isso tornará o desenvolvimento de bibliotecas para serialização (serde), roteamento web e geração de código mais flexível.
Otimização do compilador e melhorias no cargo
Os desenvolvedores continuaram trabalhando no desempenho da compilação:
- Compilação incremental acelerada para grandes projetos (até 15% mais rápida).
- Adicionado suporte a análise paralela de dependências no
cargo check. - Melhor armazenamento em cache de artefatos intermediários no
cargo build.
Também foi adicionado ao cargo um novo comando cargo info, que exibe informações detalhadas sobre um pacote do registro (versões, dependências, licença) sem a necessidade de baixá-lo.
Correções de segurança e estabilidade
Na versão 1.85, várias vulnerabilidades relacionadas ao tratamento de código inseguro (unsafe) foram corrigidas. Erros de manipulação de memória ao usar std::mem::transmute e MaybeUninit foram corrigidos. A equipe Rust recomenda que todos os usuários atualizem para garantir a segurança dos projetos.
Como atualizar
A atualização está disponível através do instalador oficial rustup. Para instalar a nova versão, execute o comando:
Recommended Libraries
Mais notícias
Salários de desenvolvedores Rust cresceram 20% em 2024
Principais anúncios da conferência de JavaScript e Node.js 2024
Grandes empresas migram para C# (.NET): tendência de 2025
Comunidade Node.js elegeu as melhores bibliotecas de 2024
TypeScript novamente no topo das linguagens favoritas dos programadores no StackOverflow