Rust 1.100.0 chega com never type estável e allocator_api
Aprofundamento CEVIU
Aprofundamento
O never type (!) é o tipo uninhabited canônico do Rust. Ele representa computações divergentes, aquelas que nunca resolvem para valor algum, como return, break e std::process::exit. O que o diferencia de outros tipos sem valores possíveis é a coerção never-to-any: ! vira qualquer outro tipo, o que permite, por exemplo, não retornar valor em um ramo de match ou if. A estabilização levou 10 anos e 5 tentativas fracassadas, e agora o tipo pode ser nomeado em qualquer lugar. Infallible virou alias de !, então APIs antigas baseadas nele seguem compatíveis.
O preço é uma breaking change: o never type fallback passou de () para ! nas editions 2015, 2018 e 2021, como já era na 2024. O impacto deve ser pequeno, mas pode aparecer ao ignorar o resultado de uma função que retorna um parâmetro genérico, e o compilador pode marcar mais código como inalcançável. Se uma dependência quebrar, a recomendação é atualizá-la, porque correções em crates públicos já foram publicadas.
A versão também estabiliza o núcleo da allocator_api. Com a trait Allocator, autores de bibliotecas definem allocators customizados para Vec e Box. É a base do project goal Allocators 1.0, e mais estabilizações são esperadas. Chega ainda o core::mem::DropGuard, que executa uma closure ao ser descartado e tem o método dismiss para cancelar a execução, útil em operações transacionais com rollback. No Cargo, há aviso de dependências não usadas, novo layout do build-dir e resolução com idade mínima de publicação (dependency cooldowns), contra ataques de supply chain.
O que mudou
A cobertura do CEVIU mostra a cadência da linguagem em 2026. Em 17 de abril de 2026, o CEVIU noticiou o "Anunciado Rust 1.95.0", com cfg_select! e if let guards em match. Em 29 de maio de 2026, veio o "Anunciado o Rust 1.96.0 com Tipos core::range Estabilizados e Melhorias no Cargo". Em 21 de agosto de 2026, o "Rust 1.98.0 Otimiza Cálculos de Ponto Flutuante e Acelera Formatação". A 1.100.0 segue essa linha de estabilizações graduais, mas com uma peça que esperava há uma década.
Em 3 de novembro de 2026, o CEVIU também noticiou o "Rustup 1.29.3 corrige regressões em CPUs x86_64 sem SSE4.1 e no Solaris". O rustup é o caminho de atualização citado para chegar à 1.100.0.
Por que isso importa
Para quem opera Rust em produção, a leitura prática é: atualize em CI primeiro e observe warnings de código inalcançável, sobretudo em projetos ainda nas editions 2018 e 2021. Para quem constrói infraestrutura, a allocator_api estável abre espaço para arenas e controle de memória sem depender de nightly. Já o cooldown de dependências do Cargo é uma defesa barata de ligar, mas não substitui a revisão de atualizações.
Linha do tempo
CEVIU noticia o Rust 1.95.0, com cfg_select! e if let guards.
Rust 1.96.0 estabiliza os tipos core::range.
Rust 1.98.0 traz operações algébricas de ponto flutuante.
Rustup 1.29.3 corrige regressões em x86_64 sem SSE4.1 e no Solaris.
Rust 1.100.0 estabiliza o never type e o núcleo da allocator_api.
Perguntas frequentes
O que é o never type no Rust?
É o tipo escrito como ! no código, que representa computações que nunca produzem valor, como return, break e std::process::exit. Ele pode ser coagido para qualquer outro tipo. Na 1.100.0, ele ficou estável e pode ser nomeado em qualquer lugar.
A atualização para o Rust 1.100.0 pode quebrar meu código?
É raro, mas possível. O never type fallback passou de () para ! nas editions 2015, 2018 e 2021, o que pode afetar casos como ignorar o resultado de função que retorna parâmetro genérico. Se uma dependência falhar por isso, atualize-a, pois correções podem já existir.
O que a allocator_api estável permite fazer?
Autores de bibliotecas podem definir allocators customizados via trait Allocator e usá-los com Vec e Box. É a base do project goal Allocators 1.0. Outras coleções e tipos de ponteiro ainda devem ser estabilizados.
Como funciona o cooldown de dependências do Cargo?
Você configura uma idade mínima de publicação no .cargo/config.toml, e o Cargo ignora versões publicadas mais recentemente que isso. Versões sem o campo pubtime no índice nunca são barradas, e o cargo install ignora o limite. A equipe avisa que não é defesa completa.
Fontes
- blog.rust-lang.orgfonte original
- Categoria
- CEVIU Startups, Tecnologia e Programação
- Publicado
- 12 de novembro de 2026
- Editoria
- CEVIU Startups, Tecnologia e Programação

