VoidZero: Toolchain Rust Unifica Vite, Vitest, Oxc e Rolldown em 2026
Olá HaWkers, Evan You, criador do Vue e do Vite, anunciou o VoidZero: uma toolchain JavaScript completamente em Rust que unifica build, test, lint e bundle. É a resposta definitiva para o "fragmentation tax" do ecossistema JavaScript.
O preview público está previsto para início de 2026. Vamos entender o que é e por que importa.
O Problema da Fragmentação
Por que precisamos do VoidZero.
O JavaScript Tooling Hoje
Ferramentas que você precisa configurar:
Para um projeto típico:
├── Bundler (Webpack/Vite/Rollup/esbuild)
├── Transpiler (Babel/SWC/TypeScript)
├── Linter (ESLint + plugins)
├── Formatter (Prettier)
├── Test Runner (Jest/Vitest/Mocha)
├── Type Checker (TypeScript)
└── Package Manager (npm/yarn/pnpm)Problemas dessa fragmentação:
- Configurações inconsistentes
- Versões incompatíveis
- Performance desperdiçada
- DX fragmentada
- Manutenção custosa
O Custo Real
Impacto na produtividade:
| Aspecto | Custo Atual |
|---|---|
| Configuração inicial | 2-4 horas |
| Debug de conflitos | 5-10h/mês |
| Atualização de deps | 4-8h/trimestre |
| Cold start do dev server | 5-30s |
| Build de produção | 30s-5min |
O Que É VoidZero
A solução proposta.
Componentes Unificados
O que o VoidZero inclui:
1. Oxc (JavaScript Tooling):
- Parser JavaScript/TypeScript
- Linter (substitui ESLint)
- Formatter (substitui Prettier)
- Transformer (substitui Babel/SWC)
- Type checker experimental
2. Rolldown (Bundler):
- Bundler em Rust
- Compatível com Rollup plugins
- Integrado com Vite
- Code splitting otimizado
3. Vite (Dev Server):
- Dev server ultra-rápido
- HMR instantâneo
- Plugin ecosystem mantido
- Framework agnostic
4. Vitest (Test Runner):
- Testes unitários e integração
- Compartilha config com Vite
- Watch mode inteligente
- Coverage integrado
Arquitetura Unificada
Como tudo se conecta:
VoidZero Unified Toolchain
├── Core (Rust)
│ ├── Parser (Oxc)
│ ├── Transformer (Oxc)
│ └── Bundler (Rolldown)
├── Dev Server (Vite)
├── Test Runner (Vitest)
├── Linter (Oxc Lint)
└── Formatter (Oxc Format)
Tudo compartilha:
- AST (Abstract Syntax Tree)
- Cache
- Configuração
- Plugin system
Performance Esperada
Os números prometidos.
Benchmarks Preliminares
Comparativo com tooling atual:
| Operação | Atual | VoidZero | Melhoria |
|---|---|---|---|
| Cold start | 8s | 0.3s | 26x |
| HMR | 200ms | 15ms | 13x |
| Lint (projeto médio) | 12s | 0.8s | 15x |
| Build produção | 45s | 3s | 15x |
| Testes (500 specs) | 30s | 4s | 7.5x |
Por Que Rust?
A escolha da linguagem:
Vantagens de Rust:
- Performance próxima de C
- Segurança de memória
- Paralelismo seguro
- Sem garbage collector
- Compilação para binário nativo
Impacto prático:
// Antes: JavaScript tooling
// - Single-threaded por padrão
// - Overhead de garbage collection
// - Cold start de VM
// Depois: Rust tooling
// - Multi-threaded nativo
// - Zero GC pause
// - Binário pronto para executar
Oxc Em Detalhe
O coração do VoidZero.
Parser
Base para tudo:
// Oxc parse: ~3x mais rápido que acorn
// Suporte completo a:
// - ESNext
// - TypeScript
// - JSX/TSX
// - DecoratorsLinter
Substituto do ESLint:
Vantagens:
- 50-100x mais rápido
- Regras compatíveis com ESLint
- Menos configuração
- Sugestões inteligentes
Exemplo de uso:
# ESLint
npx eslint src/ --fix
# Tempo: 12 segundos
# Oxc Lint
npx oxlint src/ --fix
# Tempo: 0.3 segundosFormatter
Substituto do Prettier:
# Prettier
npx prettier --write src/
# Tempo: 8 segundos
# Oxc Format
npx oxc format src/
# Tempo: 0.2 segundos
Rolldown: O Novo Bundler
Substituindo Rollup e esbuild.
Compatibilidade
O que funciona:
// rolldown.config.js
// API compatível com Rollup
export default {
input: 'src/main.js',
output: {
dir: 'dist',
format: 'esm',
},
plugins: [
// Maioria dos plugins Rollup funciona
nodeResolve(),
commonjs(),
// Plugins Vite também
],
};Vite + Rolldown
Integração nativa:
// vite.config.js
export default {
// Em 2026, Rolldown é o bundler padrão
build: {
// rolldownOptions ao invés de rollupOptions
rolldownOptions: {
output: {
manualChunks: {
vendor: ['react', 'react-dom'],
},
},
},
},
};Code Splitting Otimizado
Chunks mais inteligentes:
// Rolldown analisa melhor dependências
// Resultado: bundles menores e mais eficientes
// Antes (Rollup/Webpack)
// vendor.js: 450KB
// main.js: 120KB
// Depois (Rolldown)
// vendor.js: 320KB (melhor tree-shaking)
// main.js: 95KB
Migração Prática
Como adotar o VoidZero.
Projetos Novos
Começando do zero:
# Preview disponível em 2026
npm create voidzero@latest my-app
# Estrutura gerada
my-app/
├── void.config.js # Configuração unificada
├── src/
│ └── main.ts
├── tests/
│ └── main.test.ts
└── package.jsonMigração de Vite
Para quem já usa Vite:
// vite.config.js → void.config.js
// Maior parte da config é compatível
export default {
// Vite config existente
plugins: [vue()],
// Novas opções VoidZero
toolchain: {
linter: true, // Ativa Oxc Lint
formatter: true, // Ativa Oxc Format
typeCheck: true, // Type checking integrado
},
};Migração Gradual
Adotando por partes:
Fase 1: Linter
# Substitua ESLint por Oxc Lint
npm remove eslint eslint-plugin-*
npm install oxlintFase 2: Formatter
# Substitua Prettier por Oxc Format
npm remove prettier
# Oxc format já incluídoFase 3: Bundler
# Quando Rolldown estiver estável
# Atualizar Vite para versão com Rolldown
npm update vite@latest
Impacto no Ecossistema
O que muda para a comunidade.
Frameworks Adaptando
Como frameworks respondem:
Vue:
- Criador do VoidZero é criador do Vue
- Integração nativa garantida
- First-class support
React/Next.js:
- Vercel observando de perto
- Turbopack compete diretamente
- Possível integração futura
Svelte:
- SvelteKit já usa Vite
- Migração natural para VoidZero
- Rich Harris acompanhando
Angular:
- Vite builder experimental
- Potencial adoção futura
- Depende de estabilidade
Concorrência
Outras abordagens:
| Ferramenta | Linguagem | Status |
|---|---|---|
| VoidZero | Rust | Preview 2026 |
| Turbopack | Rust | Beta |
| Bun | Zig | Produção |
| Farm | Rust | Early |
| Rspack | Rust | Beta |
Configuração Unificada
O fim da configuração fragmentada.
Antes vs Depois
Arquivos de configuração:
Antes (típico projeto):
├── vite.config.js
├── vitest.config.js
├── .eslintrc.js
├── .prettierrc
├── tsconfig.json
├── babel.config.js
└── jest.config.jsDepois (VoidZero):
├── void.config.js # Tudo unificado
└── tsconfig.json # Apenas typesExemplo de Config Unificada
Uma config para tudo:
// void.config.js
import { defineConfig } from 'voidzero';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
// Framework
plugins: [vue()],
// Dev server
server: {
port: 3000,
open: true,
},
// Build
build: {
target: 'es2022',
minify: true,
sourcemap: true,
},
// Linter
lint: {
rules: {
'no-console': 'warn',
'no-unused-vars': 'error',
},
},
// Formatter
format: {
printWidth: 100,
tabWidth: 2,
singleQuote: true,
},
// Tests
test: {
include: ['tests/**/*.test.ts'],
coverage: {
provider: 'v8',
reporter: ['text', 'html'],
},
},
});
Timeline e Adoção
Quando usar.
Roadmap Esperado
Cronograma provável:
Q1 2026:
- Preview público
- Early adopters testando
- Documentação inicial
Q2 2026:
- Beta estável
- Plugins principais portados
- Adoção em projetos novos
Q3-Q4 2026:
- Versão 1.0
- Migração de projetos existentes
- Suporte enterprise
2027+:
- Adoção mainstream
- Ecossistema maduro
- Outros frameworks adotando
Quando Migrar
Recomendações:
Migre agora se:
- Projeto novo
- Quer performance máxima
- Aceita riscos de early adopter
- Usa Vue/Vite
Espere se:
- Projeto em produção crítico
- Dependência de plugins específicos
- Time não familiarizado com Vite
- Precisa de estabilidade garantida
Conclusão
VoidZero representa a maturidade do ecossistema JavaScript. Depois de anos de ferramentas fragmentadas, finalmente temos uma visão unificada - e implementada em Rust para máxima performance.
O "fragmentation tax" que custava horas de configuração e debug vai diminuir significativamente. Uma config, uma toolchain, uma experiência consistente.
Para desenvolvedores Vue/Vite, a migração será natural. Para o resto do ecossistema, vale acompanhar de perto - essa pode ser a nova baseline de tooling JavaScript.
Se você quer entender outras tendências de JavaScript, confira nosso artigo sobre Signals no TC39 para ver mais mudanças importantes na linguagem.
Bora pra cima! 🦅
💻 Domine JavaScript de Verdade
O conhecimento que você adquiriu neste artigo é só o começo. Entender ferramentas modernas exige base sólida na linguagem.
Invista no Seu Futuro
Preparei material completo para você dominar JavaScript:
Formas de pagamento:
- 1x de R$27,00 sem juros
- ou R$27,00 à vista no Pix

