Rewriting Bun in Rust
Relato técnico de primer nivel de **Jarred Sumner**, creador de **Bun** (runtime JS/TS, >22M de descargas/mes), sobre la **reescritura completa de Bun de Zig a Rust en 11 días** (3→14 de mayo de 2026) impulsada por **Claude** — un caso de estudio excepcional de ingeniería de software asistida por IA **a escala industrial**. Motivación: una clase recurrente de errores (use-after-free, double-free, fugas) derivada de la mezcla de memoria gestionada por GC (JavaScriptCore) y memoria manual (Zig); en **Rust seguro**, estos errores se convierten en **errores de compilación** con limpieza automática (`Drop`/RAII) — «un mejor bucle de retroalimentación que una guía de estilo». Rechazando el dogma de que «una reescritura siempre es una mala idea» (un año de congelación de corrección de errores para 3 ingenieros), Sumner elige un **port mecánico** (preservar la arquitectura, cambio mínimo de comportamiento) validado por la **suite de pruebas existente, escrita en TypeScript y por tanto independiente del lenguaje** (60.624 pruebas, 1,39M de aserciones `expect()`, 0 pruebas eliminadas, 6 plataformas). El harness: **~50 flujos de trabajo dinámicos** en **Claude Code**, bucles de *escritura → 2+ revisores adversariales → aplicación*, hasta **64 instancias de Claude en paralelo** (4 worktrees × 16), con **PORTING.md** + **LIFETIMES.tsv** generados en preparación. Cifras: **6.502 commits** (pico de 695/h, 58/min, ~1.300 líneas/min), diff final **+1.009.272 líneas**, ~16.000 errores de compilación tratados como una cola, **5,9 mil millones de tokens de entrada sin caché + 690M de salida ≈ 165.000 $**. Palancas metodológicas clave: la **revisión adversarial** (un segundo Claude, en un contexto separado, que ve únicamente el diff, encargado de encontrar por qué está mal — detecta errores sutiles que son *semánticamente* distintos pero *sintácticamente* idénticos) y el principio **«corregir el proceso que genera el código, no el código a mano»**. Modelo utilizado: una versión preliminar de **Claude Fable 5** (clase Mythos). Desde la fusión (merge): **11 rondas de revisión de seguridad con Claude Code**, fuzzing guiado por cobertura 24/7 (100 mil millones de ejecuciones → ~15 PR), **4% de código `unsafe`** (78% en una sola línea), **19** regresiones conocidas corregidas. En producción: Claude Code v2.1.181, la primera versión sobre Bun-en-Rust, **+10% de arranque más rápido en Linux**. Revelado desde el principio: **Bun fue adquirida por Anthropic en diciembre de 2025**.
Jarred Sumner (créateur de Bun ; travaille chez Anthropic depuis le rachat de Bun en décembre 2025)