Se hizo merge del PR de reescritura de Bun en Rust
(github.com/oven-sh)- El PR #30412 introduce cambios para reescribir Bun en Rust y fue mergeado de la rama
claude/phase-a-portamainel 14 de mayo de 2026 - La magnitud del cambio se muestra como 6,755 commits, 2,188 archivos y
+1,009,257/-4,024líneas - Jarred-Sumner señaló que pronto saldrá una publicación de blog con más detalles
- Se explica que este cambio pasa la suite de pruebas existente de Bun en todas las plataformas y que corrigió varias fugas de memoria y pruebas inestables
- Se indica que el tamaño del binario se redujo entre 3 MB y 8 MB, y que los benchmarks se mantienen neutrales o muestran mejoras de velocidad
- Como razón más importante, se menciona que ahora podrán detectar y prevenir con herramientas asistidas por el compilador los errores de memoria en los que el equipo ha invertido durante años mucho tiempo de desarrollo y depuración
- Se explica que la base de código en general sigue siendo la misma y que también se mantuvieron la arquitectura y las estructuras de datos
- También se aclara que Bun sigue usando pocas bibliotecas de terceros y que no utiliza async Rust
- Los usuarios pueden probar este cambio con
bun upgrade --canary - Jarred-Sumner pidió que reporten issues si surge algún problema y comentó que podría bloquear el hilo si se calienta demasiado
- Antes de que llegue a la versión no canary, todavía quedan trabajos de optimización por hacer
- También quedan tareas de limpieza, que avanzarán en una serie de PR posteriores
4 comentarios
Vaya, se fusionó un PR de un millón de líneas. Pasaron de Zig a Rust de una sola vez. Decían "no sé si esto se va a fusionar o no~~", y una semana después cambiaron de golpe el lenguaje de un código que ya funcionaba bien, jaja. Siento que está pasando algo histórico por culpa de la programación asistida por IA.
¿En serio? Decían que solo estaban haciendo pruebas y que probablemente no lo iban a usar.
Como no lo hicieron en Zig, se pasaron de una a Rust con una audacia tremenda jaja
Comentarios de Hacker News
Si en el anuncio dicen que la reescritura tomó una semana, dan ganas de preguntarse cuánto tiempo tomó preparar este archivo de instrucciones tan detallado para mapear modismos de Zig a modismos de Rust: https://github.com/oven-sh/bun/commit/46d3bc29f270fa881dd573...
Además, viendo las secciones
Pointers & ownershipyCollections, parece que el codebase de Bun ya usaba tipos internos de smart pointers para quedar listo para un mapeo 1:1 con sus equivalentes en Rust, y el crate de Rustbun_collectionstambién ya existíaEsta reescritura parece haber estado preparándose desde hace mucho tiempo y ser algo que el equipo de Bun propuso durante las negociaciones de adquisición con Anthropic
Hay demasiado dinero en juego, así que claramente existe el incentivo de infiltrar marketing disfrazado en la comunidad, y parte de esto también es simple lógica de bandos
Ahora que Anthropic es dueño de Bun, también tiene bastantes incentivos para hacer que este trabajo parezca más fácil de lo que realmente fue
La escala de la salida es tan grande que aquí parece haber un efecto multiplicador
Aun así, me da curiosidad cuánta experiencia tácita hizo falta para crear estas reglas y cuánto se iteró sobre ese archivo
Por ejemplo, me gustaría saber cuántas de esas reglas surgieron de casos fallidos encontrados durante iteraciones de traducción
using internal smart pointer types that map 1-to-1 to Rust equivalents, pero los smart pointers no los inventó RustSi programas en cualquier otro lenguaje con punteros, ya estás modelando esos mismos tipos en tu cabeza
Y también es falso que el crate de Rust
bun_collectionsya existieraEs solo parte del PR del codebase, no algo que ya existiera desde antes
Sería muy fácil reducir las dudas y a la vez empujar más la narrativa del IPO: publiquen en un repositorio aparte el trabajo oculto que hizo falta para impulsar la IA y dejen que todos reproduzcan los resultados
Al final, lo que los clientes quieren conseguir también son 1 millón de líneas de código utilizables en “7 días”, ¿no?
Todo el mundo podría intentar reproducirlo en su propio workflow y eso además subiría las métricas de uso de Anthropic
Si de verdad fuera un resultado tan impresionante, me imaginaría primero un post en el blog con enlaces e instrucciones
Claro, también puede ser que justo en este momento estén escribiendo ese post y se demuestre que yo estaba equivocado
¿Ese es el centro de la teoría conspirativa?
bun_collectionstampoco parece ser mucho más antiguo que la guía de portabilidad+1009257 -4024: eso significa que Bun ahora supera 1 millón de líneas de código RustYa se está acercando al tamaño del propio compilador de Rust
Aunque BunJS es en gran medida un wrapper de un intérprete de JavaScript y una reimplementación de librerías de NodeJS, o sea, se parece bastante a un wrapper de la biblioteca estándar de Rust
BunJS parece estar convirtiéndose en un canario sobre la gestión de complejidad del software en la era de los LLM
mostly a JavaScript interpreter wrapperno es precisoBun es un transpiler (parser) de JavaScript y CSS con baterías incluidas, minificador, bundler, gestor de paquetes tipo npm, runner de tests tipo Jest, y también trae APIs de runtime como clientes integrados de Postgres, MySQL y Redis
Naturalmente, eso hace que el código crezca muchísimo
Bun usa JavaScriptCore como motor JS, así que Bun en sí no hace, o al menos no debería hacer, parsing, interpretación ni JIT de JavaScript
Corrección: leí mal. Decía “JavaScript interpreter wrapper”, así que la expresión sí es correcta
+inicial o si también hay otro factor, pero en móvil aparece subrayado el cambio en número de líneas y si lo tocas puedes llamar por teléfonoSi es por el tamaño del diff, está bastante gracioso
No tendría nada de raro que la reescritura diera como resultado un LOC parecido
El resultado de
$ rg 'unsafe [{]' src/ | wc -les 10428, y el de$ rg 'unsafe [{]' src/ -l | wc -les 736Por lenguaje: Rust 1443 archivos y 929213 líneas, Zig 1298 archivos y 711112 líneas, TypeScript 2604 archivos y 654684 líneas, JavaScript 4370 archivos y 364928 líneas, C 111 archivos y 305123 líneas, C++ 586 archivos y 262475 líneas, y C Header 779 archivos y 100979 líneas
¿Cómo buscas código inseguro en Zig?
¿O simplemente hay que asumir que está en todas partes?
unsafe, no parece una buena reescrituraSi casi la mitad del código sigue siendo unsafe, ¿cuál es el sentido de reescribirlo en Rust?
Lo que hay en casa:
10428Todavía estamos escribiendo el post del blog sobre esto y vamos a compartir más detalles
Si te interesa el contexto, revisa la lista de correcciones de bugs en las notas de lanzamiento de Bun v1.3.14 y versiones anteriores
Rust no va a arreglar todo esto. Las fugas causadas por mantener referencias demasiado tiempo y todos los problemas de reentrada al cruzar el límite de JS siguen siendo responsabilidad nuestra
Pero una parte importante de esa lista sí son use-after-free, double-free y olvidos de liberar en rutas de error, y esas cosas pasan a ser errores de compilación o limpieza automática
I work on Bun and this is my branchThis whole thread is an overreaction. 302 comments about code that does not work. We haven’t committed to rewriting. There’s a very high chance all this code gets thrown out completely.¿Quizá no era una sobrerreacción después de todo?
[0]: https://news.ycombinator.com/item?id=48019226
Me pregunto si planean correr los binarios de Zig y Rust en paralelo sobre una gran variedad de aplicaciones reales, o incluso hacer shadow execution en producción si es posible, para filtrar bugs
¿Podrías dar una estimación aproximada?
También me gustaría saber cuál es el plan concreto para lanzar esto sin romper los workflows de los usuarios
Hace unos 9 días, Jarred escribió que para nada era seguro que esto se fuera a fusionar y que todo era una sobrerreacción
Qué irónico
Imagínense el escándalo si Linus dijera que no va a reescribir el kernel de Linux y un día se levantara para fusionar una reescritura completa en Rust asistida por máquina
Era obvio que había que justificar el costo de tokens gastado
Wow, va a estar entretenido ver qué pasa de aquí en adelante
No hay forma de que este código haya sido revisado, pero tal vez ya entramos en una era posthumana donde se puede confiar en que los modelos escriban y revisen código
Esto es como Gastown, pero ocurriendo en un proyecto mucho más famoso
Me intriga cómo este proyecto va a poder agregar nuevas funciones en el futuro, o si siquiera va a ser posible
¿Alguien sabe exactamente cómo usa Anthropic a Bun?
¿Es parte de Claude Code?
Me preocupa bastante seguir usando Bun en adelante, aunque no sé hasta qué punto esa preocupación también aplica al uso de Claude
Si no puedes confiar en el test suite para detectar una traducción automática entre lenguajes, entonces en realidad no deberías confiar en ese test suite en absoluto :)
La verdad sí me entusiasma experimentar con traducción automática, pero me preocupa que haya muchos problemas de compatibilidad hacia atrás
Empecé a mirar el commit y básicamente están resolviendo problemas de “los tests no pasan” cambiando los propios tests
El trabajo real para que esto funcione correctamente con programas ya desplegados apenas está empezando
Lo bueno, supongo, es que la comunidad de JS del lado del servidor por alguna razón ya está acostumbrada a que las cosas se rompan seguido
Pero si esto realmente funciona en la práctica sin mayores problemas, sería algo bastante impresionante
GPT/Codex es más honesto en ese aspecto
Soy escéptico con toda esta reescritura, y Jarred Sumner tiene tantísimos seguidores en internet que todo esto se siente como publicidad
¡Excelente! Solo agrégale un
sleep(1)arbitrario al test. ¡No te preocupes, todo va a salir bien!Los pocos proyectos míos que usan Bun los voy a migrar a otra cosa
No confío en una gobernanza que permita un cambio tan temerario
Desde el principio estuvo bien hecho, así que ni siquiera necesita una reescritura
Por otro lado, sí va a ser interesante ver cómo resulta este bautismo de fuego, y a largo plazo sospecho que al final terminarán arreglando los problemas
Hay un hilo que vale la pena ver por motivos educativos. Hace una semana, Jarred volvió a apartarse de la decisión de fusionarlo, y una multitud de soldados de infantería atacaba a quienes predecían que pronto se iba a fusionar:
https://news.ycombinator.com/item?id=48073680
Viéndolo ahora, no envejeció muy bien, ¿verdad?
Si esto sale aunque sea un poco mal, las burlas de que es un narco consumidor de su propia mercancía van a ser interminables y deprimentes
¿Leíste el paper de Mythos? La antropomorfización es realmente fuerte
Puede que solo sea una forma barata de llamar la atención, pero si de verdad creen que los LLM son conscientes... wow