Fearless SIMD 1.0 traz SIMD estável e seguro ao Rust
O Fearless SIMD 1.0, lançado em 21 de setembro, dá ao Rust SIMD seguro do SSE2 ao AVX-512, NEON e WebAssembly, com uma API estável e 3 anos de correções de segurança.
Por Claire Whitmore
3 min de leitura
Traduzido automaticamente do original em inglês, que Claire Whitmore verificou e editou. Prevalece a versão em inglês. Como trabalhamos

Em números
- crates that depend on it indirectly
- 1,000+
- crates that use it directly
- 30
- minimum Rust version
- 1.89
- of security backports promised
- 3 years
O Fearless SIMD, uma biblioteca Rust para escrever código numérico rápido sem blocos unsafe, chegou à versão 1.0 em 21 de setembro de 2026. A versão congela sua API, então o código escrito hoje com ela deve continuar compilando. Isso importa porque mais de 1.000 crates Rust já dependem dela, diretamente ou por meio de outras bibliotecas.
O projeto Linebender anunciou o lançamento em seu blog em 22 de setembro. A versão também aparece no docs.rs, o site de documentação do Rust, com data de 21 de setembro.
O que é SIMD e por que o Rust o torna difícil
SIMD significa "single instruction, multiple data" (uma instrução, múltiplos dados). Um processador moderno pode somar, comparar ou multiplicar vários números com uma única instrução, em vez de um de cada vez. Código de gráficos, áudio, compressão e imagem depende disso para ganhar velocidade.
No Rust, o caminho direto para essas instruções são os "intrinsics". São funções que correspondem diretamente a uma instrução do processador. A maioria é marcada como unsafe. Chamar uma delas num processador que não tem a instrução pode travar o programa. O Rust pede ao programador que prometa, manualmente, que a verificação foi feita.
Cada família de processadores também tem seu próprio conjunto de instruções. Código escrito para o AVX-512 da Intel não faz nada num celular Arm. Dar suporte a vários chips geralmente significa escrever a mesma rotina várias vezes.
O que o Fearless SIMD faz
A biblioteca envolve os dois problemas em código seguro. Seu README descreve "uma forma de usar SIMD com segurança, tanto por meio de intrinsics quanto de abstrações seguras, contendo ela mesma notavelmente pouco código inseguro."
Ela oferece quatro abordagens, segundo o post da Linebender:
- Autovetorização: ajudar o compilador a transformar loops comuns em código SIMD.
- Multiversioning: compilar várias cópias de uma função para chips diferentes e escolher a certa quando o programa roda.
- Operações portáveis: um conjunto de tipos vetoriais que funciona em todos os processadores suportados.
- Intrinsics de plataforma: acesso direto às instruções próprias de um chip, sem
unsafe.
Esse último ponto é o que a Linebender enfatiza. "Graças ao acesso seguro aos intrinsics, não há teto de desempenho", diz o post.
| Item | Detalhe |
|---|---|
| Versão | 1.0.0, 21 de setembro de 2026 |
| Intel e AMD | Do SSE2 ao AVX-512 |
| Arm | NEON |
| Navegadores | WebAssembly SIMD |
| Outros chips | Alternativa escalar |
| Rust mínimo | 1.89 |
| Dependências | Nenhuma no crate principal |
| Licença | Apache-2.0 ou MIT |
Um crate complementar opcional, fearless_simd_macros, adiciona um atributo #[simd]. O post do blog diz sobre ele: "Coloque-o em qualquer função SIMD e simplesmente funciona."
O que mudou na 1.0
O projeto começou como protótipo em 2018, há oito anos, segundo a Linebender. A versão 1.0 traz algumas últimas mudanças incompatíveis antes do congelamento, segundo o repositório no GitHub:
witness()passa a se chamartoken()e vai para um novo supertraitExtractToken.SimdBase::NeSimdMask::Npassam a se chamarLEN.as_arrayagora retorna uma referência em vez de uma cópia.- Novas operações de aritmética saturada e contagem de bits.
- Novas reduções:
reduce_min,reduce_max,reduce_sumereduce_product. - Novas operações de multiplicação-adição fundida.
O repositório também estabelece uma promessa de suporte. A versão 1.0 mais recente para cada versão mínima do Rust recebe correções de segurança por pelo menos 3 anos depois do lançamento dessa versão do Rust. Versões futuras podem elevar a versão mínima do Rust em atualizações menores.
O que isso significa para desenvolvedores
Se você usa um crate que inclui o Fearless SIMD, verifique se ele já migrou para a 1.0. As renomeações acima vão quebrar código que chamava witness(), usava N ou contava com as_array retornando uma cópia. São correções mecânicas, mas são erros de compilação até você fazê-las.
Se você mantém código SIMD unsafe escrito à mão, este é um bom momento para compará-lo com a biblioteca. O principal ganho é um único caminho de código para x86, Arm e WebAssembly em vez de três. Faça benchmark dos seus próprios loops críticos antes e depois. A afirmação do projeto de que não há teto de desempenho vale ser testada com os seus dados.
Para autores de bibliotecas, a API estável e a janela de segurança tornam o Fearless SIMD mais seguro de expor numa interface pública. Antes da 1.0, uma mudança incompatível de uma dependência virava a sua mudança incompatível. Observe o piso do Rust 1.89 e verifique se ele atende ao compilador mais antigo que seus usuários usam.
Fontes
- Fearless SIMD v1.0 is here - Linebender
- linebender/fearless_simd - GitHub
- fearless_simd 1.0.0 documentation - docs.rs
Artigos relacionados

Ubuntu 26.10 chega com Linux 7.3 e coreutils em Rust
O Ubuntu 26.10 foi lançado em 15 de outubro de 2026 com Linux 7.3, GNOME 51 e coreutils totalmente baseados em Rust. Ele tem suporte por nove meses, até julho de 2027.

Rust 1.99 estabiliza a definição de funções C-variadic
O Rust 1.99.0, lançado em 1º de outubro de 2026, permite que o Rust estável defina funções C-variadic como printf, passa para o LLVM 23 e torna no_mangle em genéricos um erro.

Python Language Summit 2026 debate Rust e um novo GC
Os relatos do Python Language Summit 2026 saíram: 47 desenvolvedores do núcleo discutiram Rust no CPython, um novo coletor de lixo, um namespace std e uma inicialização mais rápida.