Rust 1.100.0 é lançado com never type, APIs Allocator e DropGuard
Aprofundamento CEVIU
Aprofundamento
O Rust 1.100.0 estabiliza o never type (!), o tipo inabitado canônico, depois de 10 anos e 5 tentativas frustradas de estabilização. Ele representa computações que divergem, como return, break e std::process::exit, e permite coerção de ! para qualquer outro tipo, o que ajuda, por exemplo, a não retornar valor em um ramo de match ou if. Agora é possível nomear o tipo em qualquer lugar, não só no retorno de funções. Infallible virou alias de !.
Isso trouxe uma quebra: o "never type fallback" passa de () para ! nas edições 2015, 2018 e 2021, como já acontecia na 2024. O impacto deve ser raro (por exemplo, ao ignorar o resultado de função que retorna parâmetro genérico) e o compilador pode apontar mais código como inalcançável. A equipe avisou com warnings de compatibilidade futura e corrigiu crates públicas afetadas.
A versão também estabiliza o núcleo do allocator_api com a trait Allocator, por enquanto utilizável com Vec e Box. Entram ainda core::mem::DropGuard, que executa uma closure ao sair de escopo e tem dismiss para suportar rollback, e std::mem::conjure_zst, função unsafe para criar tipos de tamanho zero. No Cargo, há aviso de dependências não usadas, hash de build consistente no build-dir e min-publish-age (cooldown de dependências), que ignora versões publicadas há pouco tempo. O cargo install ignora essa regra.
Por que isso importa
Para quem mantém crates ou projetos em edições antigas, vale rodar o build e os testes com atenção ao novo fallback do never type. Para quem opera pipelines, o cooldown de dependências é uma camada barata contra versões maliciosas, mas a própria equipe diz que não substitui a revisão de atualizações. Quem escreve código de baixo nível ganha uma base oficial para custom allocators, ainda limitada a Vec e Box.
Linha do tempo
CEVIU noticia o Rust 1.95.0, com cfg_select! e if let guards em match.
Rust 1.96.0 estabiliza os tipos core::range.
Rust 1.98.0 traz operações algébricas de ponto flutuante.
Equipe do Rust anuncia a versão 1.100.0 com never type estável e allocator_api.
Rust 1.100.0 chega estável com never type, Allocator, DropGuard e novidades no Cargo.
Perguntas frequentes
Como atualizar para o Rust 1.100.0?
Quem tem o Rust instalado via rustup pode atualizar pelo próprio rustup. Quem ainda não tem pode obter o rustup no site oficial do projeto. Também é possível testar versões futuras pelos canais beta e nightly.
A mudança do never type fallback pode quebrar meu código?
A equipe diz que o efeito deve passar despercebido na maioria dos casos. Pode afetar código em situações raras, como ignorar o resultado de uma função que retorna um parâmetro genérico. Se uma dependência falhar, atualizá-la costuma resolver, pois correções já foram publicadas.
O que é o min-publish-age do Cargo?
É a resolução de dependências que pula versões publicadas há menos tempo que o limite configurado em .cargo/config.toml. A ideia é dar tempo para que versões maliciosas sejam detectadas. Versões sem o campo pubtime no índice nunca são retidas.
Quais tipos já aceitam custom allocators?
Com a estabilização da trait Allocator, o suporte atual cobre Vec e Box. A equipe afirma que ainda falta expandir a API e estabilizar o uso em mais coleções e tipos de ponteiro.
Fontes
- blog.rust-lang.orgfonte original
- Categoria
- CEVIU
- Publicado
- 13 de novembro de 2026
- Editoria
- CEVIU

