Lançado Rust 1.80: visão geral das principais mudanças e novidades

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Lançado Rust 1.80: visão geral das principais mudanças e novidades



A equipe de desenvolvedores do Rust apresentou mais um lançamento estável — a versão 1.80.0. Esta atualização traz várias funcionalidades há muito aguardadas, estabiliza uma série de APIs e melhora a experiência do usuário. Vamos entender o que mudou e como essas novidades impactarão o desenvolvimento.



Estabilização de LazyCell e LazyLock

Provavelmente, a novidade mais notável é a estabilização dos tipos LazyCell e LazyLock. Anteriormente, para inicialização preguiçosa de dados, era necessário usar crates de terceiros (por exemplo, once_cell) ou construções complexas.

  • LazyCell — inicialização preguiçosa não bloqueante para contexto de thread única. Permite adiar a criação de um valor até o primeiro acesso.
  • LazyLock — versão thread-safe, que usa um mutex para sincronização de acesso. Ideal para configurações globais e singletons.

Ambos os tipos implementam as traits Deref e DerefMut, tornando-os convenientes de usar. Agora a biblioteca padrão cobre os cenários mais comuns de inicialização preguiçosa.



Estabilização de API: Exclusive e outras

Na versão 1.80, uma série de novas APIs foi estabilizada:

  • Exclusive — um wrapper para acesso exclusivo a um valor. Permite trabalhar com segurança com tipos não-Send em contexto assíncrono, fornecendo acesso síncrono através de um closure.
  • Métodos BorrowedBuf::as_slice e BorrowedCursor::as_slice — simplificam o trabalho com buffers de entrada/saída.
  • HashMap::extract_if e HashSet::extract_if — iteradores que permitem remover elementos de uma coleção com base em um predicado, assumindo a posse deles.


Melhorias no compilador

A equipe do Rust continua trabalhando no feedback do compilador. No 1.80, as mensagens de erro para uso incorreto de traits e lifetimes foram melhoradas. Agora o compilador oferece dicas mais precisas, o que é especialmente útil para iniciantes.

  • Diagnósticos aprimorados para erros relacionados a tipos que implementam Drop.
  • Mensagens mais claras para conflitos de importação.
  • Otimização do tempo de compilação para projetos que usam macros.


O que isso significa para os desenvolvedores?

A atualização para o Rust 1.80 é recomendada para todos que usam ativamente inicialização preguiçosa ou trabalham com código assíncrono. A estabilização do LazyLock permite eliminar dependências externas, simplificando a compilação e aumentando a segurança. Os novos métodos para coleções tornam o código mais idiomático, e a melhoria na diagnose do compilador acelera a depuração.



Para os usuários do PythonLib que estão aprendendo Rust ou o utilizam em conjunto com Python (por exemplo, via PyO3), esta atualização também é importante: APIs estáveis e desempenho aprimorado do compilador tornam o Rust ainda mais atraente para programação de sistemas e serviços de alta carga.



A lista completa de alterações está disponível nas notas oficiais do lançamento. Para atualizar o Rust, use o comando rustup update stable.

Recommended Libraries