Mi nombre es Jared, y voy a hablar sobre BUN. BUN es un entorno de ejecución de JavaScript moderno todo en uno. Está diseñado para comenzar rápido, para alcanzar nuevos niveles de rendimiento, para ser una herramienta excelente y completa y para ser un reemplazo directo de Node.js.
BUN dev es un servidor de desarrollo front-end que comienza en 4 milisegundos. Es un comando que está integrado en BUN. BUN install es un gestor de paquetes NPM, y instala paquetes NPM 20 veces más rápido que cualquier otro cliente NPM que existe hoy en día. BUN run es un ejecutor de scripts de paquete JSON de NPM, y comienza scripts de paquete JSON 30 veces más rápido que NPM.
En BUN v0.3.0, añadimos instalaciones automáticas de paquetes NPM al entorno de ejecución de JavaScript de BUN. Eso significa que puedes simplemente importar paquetes y se instalan. No hay—no tienes que ejecutar realmente un paso de instalación. Esto se habilita automáticamente cuando—no hay una carpeta de node modules. Así que todavía funciona con node modules, solo significa que cuando no tienes node modules, si tienes un script rápido que solo quieres ejecutar y no quieres tener que lidiar con la instalación de paquetes, simplemente funciona. Lo otro que es realmente interesante sobre eso es que puedes—no—porque no necesitas una carpeta de node modules, puedes simplemente—ahorra mucho espacio en disco y te ahorra mucho tiempo porque no tienes que pasar este tiempo instalando los paquetes. Utiliza una caché global compartida.
En BUN, JSX es soportado nativamente. Hay un transpilador automático de JSX y TypeScript, JSX incluso está habilitado para archivos .JS por cierto, y también puedes tener paquetes npm que usan JSX y BUN simplemente los transpila automáticamente. Puedes console.log JSX, puedes hacer punting de propiedades JSX y tenemos una renderización del lado del servidor de React extremadamente optimizada.
Esto es lo que parece cuando haces console.log a un elemento JSX en BUN. Puedes ver que en lugar de imprimir la representación del objeto con los símbolos y todo eso en realidad simplemente lo imprime como HTML un poco. Puedes ver que todavía preserva que esto es una función, o resalta el componente para que sea azul en lugar de verde para indicar que es un elemento frente a un componente. Y luego esto es lo que parece el punting de propiedades JSX en BOTnets. Hay más de un nombre para esto, pero la idea básica es que en lugar de tener que escribir si el nombre de la propiedad es el mismo identificador que el valor, puedes simplemente emitir el valor. De esa manera, es el equivalente a la sintaxis de desestructuración de objetos, pero para JSX. No creo que haya otras herramientas que soporten esto todavía. En la próxima versión de React, están añadiendo un nuevo renderizado de servidor en streaming de bun, y eso ayuda a hacer que bun sea tres veces y media más rápido en la renderización del lado del servidor en comparación con cuando se usa la compilación server.browser, que es la que bun usa actualmente. En general, esto suma hasta cuatro veces más rápido la renderización del lado del servidor en bun en comparación con node.
Este benchmark aquí es un benchmark de Hello World para una aplicación React muy simple. Si has usado cualquier framework en el pasado, para construir cosas de front-end con React, probablemente has usado recarga de módulos en caliente. Usualmente, la recarga de módulos en caliente es algo que existe en el cliente, se ejecuta en navegadores. Pero en bun, bun tiene soporte incorporado para la recarga de módulos en caliente en el servidor.
Comments