Bun reescribe casi un millón de líneas de código en Rust en apenas seis días

Fuentes: Jarred Sumner's Twitter Thread | Xunroll, github.com, github.com, old.reddit.com
Bun reescribe casi un millón de líneas de código en Rust en apenas seis días
Imagen generada con IA

Bun reescribe casi un millón de líneas de código en Rust en apenas seis díasEl runtime JavaScript de alto rendimiento Bun, desarrollado por Oven-sh, ha completado una reescritura masiva de 960.000 líneas de código migrando desde el lenguaje Zig hacia Rust, en un proceso que duró apenas seis días. El fundador del proyecto, Jarred-Sumner, anunció a través deGitHub que la migración ha sido fusionada con éxito, manteniendo la compatibilidad con la suite de pruebas existente y reduciendo el tamaño binario entre 3 y 8 MB.La motivación principal detrás de este cambio radica en la necesidad de eliminar problemas crónicos de memoria que han consumido una cantidad significativa de tiempo de desarrollo y depuración. según explicó el desarrollador en la fuente xunroll.com, “estoy tan cansado de preocuparme pormemory leaks y dedicar mucho tiempo a arreglarlos”.Con la llegada de Rust, el equipo obtiene herramientas asistidas por compilador para detectar y prevenir errores de memoria de manera proactiva, algo que no era posible con el anterior lenguaje.ZSegún los datos del pull request #30412 publicado en GitHub, el 99,8% de la suite de pruebas existente pasa correctamente en Linux x64 con la nueva implementación en Rust. Además, el cambio ha corregido varios memory leaks y pruebas inestables que afectaban al rendimiento del runtime.Los detalles técnicos muestran que el código base mantiene la misma arquitectura y estructuras de datos. Bun continúa utilizando pocas dependencias de terceros y no hace uso de async Rust. El proceso de porting conservó los archivos .zig originales como referencia no compilada durante la transición, eliminándolos posteriormente en el PR #30680, que eliminó 1.234 archivos .zig, aproximadamente 640.000 líneas de código fuente.La escala del esfuerzo es notable: casi un millón de líneas de código reescritas en menos de una semana. Sin embargo, Jarred-Sumner advierte que aún queda trabajo de optimización antes de que esta versión llegue a la versión estable no canary. También habrá limpieza de código que se realizará en una serie de pull requests subsiguientes.Para probar esta nueva versión, los desarrolladores pueden ejecutar “bun upgrade –canary” y reportar cualquier problema encontrado. El equipo ha indicado que publicará un artículo detallado en el blog explicando el proceso, los benchmarks obtenidos y las implicaciones para el futuro mantenimiento del proyecto.Aunque esta migración ha generado interés comunitario, el pull request fue inicialmente marcado como “AI slop” debido a su skala, pero tras una revisión humana se confirmó que todos los cambios eran eliminaciones puras y las modificaciones de prueba eran directas, por lo que fue fusionado sin problemas.El cambio de Zig a Rust representa una tendencia más amplia en la industria del desarrollo de herramientas de programación, donde los lenguajes con garantías de memoria están ganando terreno para proyectos que requieren alta confiabilidad y rendimiento.