VoidZero: Toolchain Rust Unifica Vite, Vitest, Oxc y Rolldown en 2026
Hola HaWkers, Evan You, creador de Vue y Vite, anunció VoidZero: una toolchain JavaScript completamente en Rust que unifica build, test, lint y bundle. Es la respuesta definitiva al "fragmentation tax" del ecosistema JavaScript.
El preview público está previsto para inicio de 2026. Vamos a entender qué es y por qué importa.
El Problema de la Fragmentación
Por qué necesitamos VoidZero.
JavaScript Tooling Hoy
Herramientas que necesitas configurar:
Para un proyecto 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 de esta fragmentación:
- Configuraciones inconsistentes
- Versiones incompatibles
- Performance desperdiciado
- DX fragmentada
- Mantenimiento costoso
El Costo Real
Impacto en la productividad:
| Aspecto | Costo Actual |
|---|---|
| Configuración inicial | 2-4 horas |
| Debug de conflictos | 5-10h/mes |
| Actualización de deps | 4-8h/trimestre |
| Cold start del dev server | 5-30s |
| Build de producción | 30s-5min |
Qué Es VoidZero
La solución propuesta.
Componentes Unificados
Lo que VoidZero incluye:
1. Oxc (JavaScript Tooling):
- Parser JavaScript/TypeScript
- Linter (sustituye ESLint)
- Formatter (sustituye Prettier)
- Transformer (sustituye Babel/SWC)
- Type checker experimental
2. Rolldown (Bundler):
- Bundler en Rust
- Compatible con plugins Rollup
- Integrado con Vite
- Code splitting optimizado
3. Vite (Dev Server):
- Dev server ultra-rápido
- HMR instantáneo
- Plugin ecosystem mantenido
- Framework agnostic
4. Vitest (Test Runner):
- Tests unitarios e integración
- Comparte config con Vite
- Watch mode inteligente
- Coverage integrado
Arquitectura Unificada
Cómo todo 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)
Todo comparte:
- AST (Abstract Syntax Tree)
- Cache
- Configuración
- Plugin system
Performance Esperado
Los números prometidos.
Benchmarks Preliminares
Comparativo con tooling actual:
| Operación | Actual | VoidZero | Mejora |
|---|---|---|---|
| Cold start | 8s | 0.3s | 26x |
| HMR | 200ms | 15ms | 13x |
| Lint (proyecto medio) | 12s | 0.8s | 15x |
| Build producción | 45s | 3s | 15x |
| Tests (500 specs) | 30s | 4s | 7.5x |
Por Qué Rust?
La elección del lenguaje:
Ventajas de Rust:
- Performance cercano a C
- Seguridad de memoria
- Paralelismo seguro
- Sin garbage collector
- Compilación a binario nativo
Impacto práctico:
// Antes: JavaScript tooling
// - Single-threaded por defecto
// - Overhead de garbage collection
// - Cold start de VM
// Después: Rust tooling
// - Multi-threaded nativo
// - Zero GC pause
// - Binario listo para ejecutar
Oxc En Detalle
El corazón de VoidZero.
Parser
Base para todo:
// Oxc parse: ~3x más rápido que acorn
// Soporte completo a:
// - ESNext
// - TypeScript
// - JSX/TSX
// - DecoratorsLinter
Sustituto de ESLint:
Ventajas:
- 50-100x más rápido
- Reglas compatibles con ESLint
- Menos configuración
- Sugerencias inteligentes
Ejemplo de uso:
# ESLint
npx eslint src/ --fix
# Tiempo: 12 segundos
# Oxc Lint
npx oxlint src/ --fix
# Tiempo: 0.3 segundosFormatter
Sustituto de Prettier:
# Prettier
npx prettier --write src/
# Tiempo: 8 segundos
# Oxc Format
npx oxc format src/
# Tiempo: 0.2 segundos
Rolldown: El Nuevo Bundler
Sustituyendo Rollup y esbuild.
Compatibilidad
Lo que funciona:
// rolldown.config.js
// API compatible con Rollup
export default {
input: 'src/main.js',
output: {
dir: 'dist',
format: 'esm',
},
plugins: [
// Mayoría de los plugins Rollup funciona
nodeResolve(),
commonjs(),
// Plugins Vite también
],
};Vite + Rolldown
Integración nativa:
// vite.config.js
export default {
// En 2026, Rolldown es el bundler por defecto
build: {
// rolldownOptions en vez de rollupOptions
rolldownOptions: {
output: {
manualChunks: {
vendor: ['react', 'react-dom'],
},
},
},
},
};Code Splitting Optimizado
Chunks más inteligentes:
// Rolldown analiza mejor dependencias
// Resultado: bundles menores y más eficientes
// Antes (Rollup/Webpack)
// vendor.js: 450KB
// main.js: 120KB
// Después (Rolldown)
// vendor.js: 320KB (mejor tree-shaking)
// main.js: 95KB
Migración Práctica
Cómo adoptar VoidZero.
Proyectos Nuevos
Comenzando desde cero:
# Preview disponible en 2026
npm create voidzero@latest my-app
# Estructura generada
my-app/
├── void.config.js # Configuración unificada
├── src/
│ └── main.ts
├── tests/
│ └── main.test.ts
└── package.jsonMigración de Vite
Para quien ya usa Vite:
// vite.config.js → void.config.js
// Mayor parte de la config es compatible
export default {
// Config Vite existente
plugins: [vue()],
// Nuevas opciones VoidZero
toolchain: {
linter: true, // Activa Oxc Lint
formatter: true, // Activa Oxc Format
typeCheck: true, // Type checking integrado
},
};Migración Gradual
Adoptando por partes:
Fase 1: Linter
# Sustituye ESLint por Oxc Lint
npm remove eslint eslint-plugin-*
npm install oxlintFase 2: Formatter
# Sustituye Prettier por Oxc Format
npm remove prettier
# Oxc format ya incluidoFase 3: Bundler
# Cuando Rolldown esté estable
# Actualizar Vite a versión con Rolldown
npm update vite@latest
Impacto en el Ecosistema
Lo que cambia para la comunidad.
Frameworks Adaptándose
Cómo frameworks responden:
Vue:
- Creador de VoidZero es creador de Vue
- Integración nativa garantizada
- First-class support
React/Next.js:
- Vercel observando de cerca
- Turbopack compite directamente
- Posible integración futura
Svelte:
- SvelteKit ya usa Vite
- Migración natural a VoidZero
- Rich Harris acompañando
Angular:
- Vite builder experimental
- Potencial adopción futura
- Depende de estabilidad
Competencia
Otros enfoques:
| Herramienta | Lenguaje | Estado |
|---|---|---|
| VoidZero | Rust | Preview 2026 |
| Turbopack | Rust | Beta |
| Bun | Zig | Producción |
| Farm | Rust | Early |
| Rspack | Rust | Beta |
Configuración Unificada
El fin de la configuración fragmentada.
Antes vs Después
Archivos de configuración:
Antes (proyecto típico):
├── vite.config.js
├── vitest.config.js
├── .eslintrc.js
├── .prettierrc
├── tsconfig.json
├── babel.config.js
└── jest.config.jsDespués (VoidZero):
├── void.config.js # Todo unificado
└── tsconfig.json # Solo typesEjemplo de Config Unificada
Una config para todo:
// 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 y Adopción
Cuándo usar.
Roadmap Esperado
Cronograma probable:
Q1 2026:
- Preview público
- Early adopters testeando
- Documentación inicial
Q2 2026:
- Beta estable
- Plugins principales portados
- Adopción en proyectos nuevos
Q3-Q4 2026:
- Versión 1.0
- Migración de proyectos existentes
- Soporte enterprise
2027+:
- Adopción mainstream
- Ecosistema maduro
- Otros frameworks adoptando
Cuándo Migrar
Recomendaciones:
Migra ahora si:
- Proyecto nuevo
- Quieres performance máximo
- Aceptas riesgos de early adopter
- Usas Vue/Vite
Espera si:
- Proyecto en producción crítico
- Dependencia de plugins específicos
- Equipo no familiarizado con Vite
- Necesitas estabilidad garantizada
Conclusión
VoidZero representa la madurez del ecosistema JavaScript. Después de años de herramientas fragmentadas, finalmente tenemos una visión unificada - e implementada en Rust para máxima performance.
El "fragmentation tax" que costaba horas de configuración y debug va a disminuir significativamente. Una config, una toolchain, una experiencia consistente.
Para desarrolladores Vue/Vite, la migración será natural. Para el resto del ecosistema, vale acompañar de cerca - esta puede ser la nueva baseline de tooling JavaScript.
Si quieres entender otras tendencias de JavaScript, echa un vistazo a nuestro artículo sobre Signals en TC39 para ver más cambios importantes en el lenguaje.
Vamos con todo! 🦅
💻 Domina JavaScript de Verdad
El conocimiento que adquiriste en este artículo es solo el comienzo. Entender herramientas modernas exige base sólida en el lenguaje.
Invierte en Tu Futuro
He preparado material completo para que domines JavaScript:
Formas de pago:
- 1x de $4.90 sin intereses
- o $4.90 al contado

