Bun reescribe 535.496 líneas de Zig a Rust en cuatro meses con IA
Jarred Sumner portó el runtime completo con Claude en cuatro meses y 165.000 dólares en tokens, en lugar del año que estimaba para un equipo humano. La v1.4.0 cierra 128 bugs y las fugas de memoria.

Bun ya no está escrito en Zig. Jarred Sumner, su creador, ha anunciado que el runtime de JavaScript y TypeScript se ha portado por completo a Rust: 535.496 líneas en cuatro meses de trabajo asistido por IA, frente al año que él mismo calculaba para un equipo de ingenieros.
El proceso
Sumner lo cuenta en el anuncio del proyecto. La motivación era concreta: buena parte de los bugs que arrastraban eran use-after-free, double-free y olvidos de liberar memoria en una ruta de error. En Rust seguro esas cosas son errores de compilación, y el compilador da mejor realimentación que una guía de estilo. Reconoce que las reescrituras suelen acabar mal y que congelar el desarrollo durante un año era inviable, pero la suite de pruebas de Bun está escrita en TypeScript, así que no depende del lenguaje del runtime. La apuesta inicial fue dedicar una semana a ver si el modelo pre-release de Claude podía hacer el port. A los pocos días pasaba buena parte de la suite.
Lo que montó fueron cuatro shards de espacio de trabajo, 16 agentes en cada uno, 64 instancias de Claude en paralelo. Un agente implementador traducía Zig a Rust guiándose por dos ficheros, PORTING.md y LIFETIMES.tsv, este último con los lifetimes de cada campo de struct del código. Dos revisores adversariales en ventanas de contexto aisladas buscaban bugs y divergencias de comportamiento sobre los diffs, y un agente fixer resolvía lo que encontraban. Sumner lo deja claro: el implementador no revisa, el revisor no implementa. En el pico, el sistema generaba unas 1.300 líneas por minuto y llegó a registrar 695 commits en una hora.
El coste fueron 5.900 millones de tokens de entrada sin caché, 690 millones de salida y 72.000 millones de lecturas de entrada cacheadas: unos 165.000 dólares a precio de API. Su estimación por medios humanos: tres ingenieros con contexto completo sobre el código, alrededor de un año.
Resultados y réplica
Con la suite en verde, más de un millón de aserciones, llegó la validación seria. El port mecánico introdujo 19 regresiones semánticas por similitudes sintácticas entre ambos lenguajes. Once rondas de revisión con Claude Code Security y fuzzing continuo de cada parser dejaron 15 pull requests.
En la v1.4.0, ya publicada, el equipo dice haber cerrado 128 bugs que arrastraba la 1.3.14 y las fugas de memoria nativas: 2.000 llamadas consecutivas a Bun.build() se estabilizan en 609 MB en Rust, frente a los más de 6,7 GB de antes. El throughput HTTP sube entre un 2% y un 5%.
Andrew Kelley, creador de Zig, publicó una respuesta dura. Le parece una dicotomía falsa plantear elegir entre guía de estilo y característica del lenguaje para evitar bugs, porque la vía principal de eliminarlos es dedicar recursos de ingeniería. Y da la vuelta al argumento de la suite: si basta para validar un millón de líneas sin revisar, por qué no bastaba para los bugs que ya tenían.
Bun fue adquirida por Anthropic en diciembre de 2025, lo que da otra lectura al asunto: es el primer caso a gran escala de código base generado por LLM que pasa a producción en un proyecto con usuarios reales. Que la suite pase no responde a la pregunta que importa a quien mantiene esto: cómo se opera y se depura ese código dentro de dos años.


