Documentación • Discord • Problemas • Hoja de ruta
Bun es un conjunto de herramientas todo en uno para aplicaciones JavaScript y TypeScript. Se envía como un único ejecutable llamado bun
.
En esencia, se encuentra el tiempo de ejecución Bun , un tiempo de ejecución rápido de JavaScript diseñado como un reemplazo directo de Node.js. Está escrito en Zig y funciona con JavaScriptCore, lo que reduce drásticamente los tiempos de inicio y el uso de memoria.
bun run index.tsx # TS y JSX compatibles desde el primer momento
La herramienta de línea de comandos bun
también implementa un ejecutor de pruebas, un ejecutor de scripts y un administrador de paquetes compatible con Node.js. En lugar de 1000 node_modules para el desarrollo, solo necesitas bun
. Las herramientas integradas de Bun son significativamente más rápidas que las opciones existentes y se pueden utilizar en proyectos Node.js existentes con pocos o ningún cambio.
bun test # ejecutar testsbun run start # ejecutar el script `start` en `package.json`bun install <pkg> # instalar un paquetebunx cowsay '¡Hola mundo!' # ejecutar un paquete
Bun es compatible con Linux (x64 y arm64), macOS (x64 y Apple Silicon) y Windows (x64).
Usuarios de Linux : se recomienda encarecidamente la versión del kernel 5.6 o superior, pero el mínimo es 5.1.
# con script de instalación (recomendado)curl -fsSL https://bun.sh/install | bash# en windowspowershell -c "irm bun.sh/install.ps1 | iex"# con npmnpm install -g bun# con Homebrewbrew tap horno-sh/bun # de instalación de preparación de pan con horno/pan de extracción Dockerdocker docker run --rm --init --ulimit memlock=-1:-1 horno/bollo
Para actualizar a la última versión de Bun, ejecute:
mejora del bollo
Bun libera automáticamente una compilación canary en cada confirmación con main
. Para actualizar a la última versión canary, ejecute:
actualización de bollo --canario
Ver compilación canaria
Introducción
¿Qué es el bollo?
Instalación
Inicio rápido
Mecanografiado
Plantillas
bun init
bun create
Tiempo de ejecución
bun run
Tipos de archivos
Mecanografiado
JSX
Variables ambientales
API de pan
API web
Compatibilidad con Node.js
Ejecutable de un solo archivo
Complementos
Modo de reloj
Resolución del módulo
Instalación automática
bunfig.toml
Depurador
API de marco
Administrador de paquetes
bun install
bun add
bun remove
bun update
bun link
bun pm
Caché global
Espacios de trabajo
Guiones de ciclo de vida
Filtrar
Archivo de bloqueo
Alcances y registros
Anulaciones y resoluciones
empaquetador
Bun.build
Cargadores
Complementos
macros
vs esbuild
corredor de prueba
bun test
Pruebas de escritura
Modo de reloj
Ganchos del ciclo de vida
se burla
Instantáneas
Fechas y horarios
pruebas DOM
Cobertura de código
Corredor de paquetes
bunx
API
servidor HTTP
WebSockets
Trabajadores
datos binarios
Corrientes
E/S de archivos
importar.meta
SQLite
Sistema de archivosEnrutador
Conectores TCP
Conectores UDP
Globales
$ concha
Procesos secundarios
Transpilador
hash
Consola
FFI
HTMLReescritor
Pruebas
Utilidades
API de nodo
globo
Semver
Proyecto
Hoja de ruta
Evaluación comparativa
Contribuyendo
Construyendo ventanas
Licencia
Binario
Convertir un Blob en un DataView
Convertir un Blob en un ReadableStream
Convertir un Blob en una cadena
Convertir un Blob en un Uint8Array
Convertir un Blob en un ArrayBuffer
Convertir un búfer en un blob
Convertir un búfer en un ReadableStream
Convertir un búfer en una cadena
Convertir un búfer a un Uint8Array
Convertir un búfer en un ArrayBuffer
Convertir un DataView en una cadena
Convertir un Uint8Array en un Blob
Convertir un Uint8Array en un búfer
Convertir un Uint8Array en un DataView
Convertir un Uint8Array en un ReadableStream
Convertir un Uint8Array en una cadena
Convertir un Uint8Array en un ArrayBuffer
Convertir un ArrayBuffer en un Blob
Convertir un ArrayBuffer en un búfer
Convertir un ArrayBuffer en una cadena
Convertir un ArrayBuffer en un Uint8Array
Convertir un ArrayBuffer en una matriz de números
Ecosistema
Construya una interfaz usando Vite y Bun
Crea una aplicación con Astro y Bun
Cree una aplicación con Next.js y Bun
Crea una aplicación con Nuxt y Bun
Crea una aplicación con Qwik y Bun
Crea una aplicación con Remix y Bun
Cree una aplicación con SolidStart y Bun
Crea una aplicación con SvelteKit y Bun
Construya un servidor HTTP usando Elysia y Bun
Construya un servidor HTTP usando Express y Bun
Construya un servidor HTTP usando Hono y Bun
Construya un servidor HTTP usando StricJS y Bun
Contener una aplicación Bun con Docker
Crea un robot de Discord
Implementar una aplicación Bun en Render
Leer y escribir datos en MongoDB usando Mongoose y Bun
Ejecute Bun como demonio con PM2
Ejecute Bun como demonio con systemd
Representación del lado del servidor (SSR) un componente de React
Use llovizna ORM con bollo
Utilice EdgeDB con Bun
Utilice Postgres sin servidor de Neon con Bun
Usa Prisma con bollo
Utilice reaccionar y JSX
Agregar Sentry a una aplicación Bun
HTTP
Uso común del servidor HTTP
Configurar TLS en un servidor HTTP
buscar con sockets de dominio Unix en Bun
Recarga en caliente de un servidor HTTP
Solicitudes HTTP de proxy mediante fetch()
Enviar una solicitud HTTP usando fetch
Iniciar un clúster de servidores HTTP
Transmitir un archivo como una respuesta HTTP
Streaming de servidor HTTP con iteradores asíncronos
Streaming de servidor HTTP con Node.js Streams
Cargar archivos a través de HTTP usando FormData
Escribe un servidor HTTP simple
Instalar
Agregar una dependencia
Agregar una dependencia de desarrollo
Agregar una dependencia de Git
Agregar una dependencia de pares
Agregar una dependencia tarball
Agregar una dependencia confiable
Agregar una dependencia opcional
Configurar un registro privado para el ámbito de una organización con bun install
Configurar git para diferenciar el archivo de bloqueo lockb de Bun
Configurar un monorepo usando espacios de trabajo
Generar un archivo de bloqueo legible por humanos
Instalar un paquete con un nombre diferente
Instalar dependencias con Bun en GitHub Actions
Anule el registro npm predeterminado para la instalación de bun
Uso de bun install con un registro npm de Azure Artifacts
Usando bun install con Artifactory
Proceso
Obtenga el tiempo de actividad del proceso en nanosegundos
Escuche CTRL+C
Escuche las señales del sistema operativo
Analizar argumentos de línea de comandos
Leer desde la entrada estándar
Leer stderr de un proceso hijo
Leer salida estándar de un proceso hijo
Generar un proceso hijo
Genere un proceso secundario y comuníquese usando IPC
leer archivo
Comprobar si existe un archivo
Obtener el tipo MIME de un archivo
Leer un archivo como ReadableStream
Leer un archivo como una cadena
Leer un archivo en un búfer
Leer un archivo en un Uint8Array
Leer un archivo en un ArrayBuffer
Leer un archivo JSON
Mire un directorio para cambios
Tiempo de ejecución
Depuración de Bun con la extensión VS Code
Depurando Bun con el depurador web
Definir y reemplazar constantes y globales estáticos
Importar un archivo JSON
Importar un archivo TOML
Importar archivo HTML como texto
Instalar y ejecutar Bun en GitHub Actions
Instalar declaraciones de TypeScript para Bun
Reasignar rutas de importación
Leer variables de entorno
Ejecutar un comando de Shell
Establecer una zona horaria en Bun
Establecer variables de entorno
Corrientes
Convertir un Node.js legible en un Blob
Convertir un Node.js legible en una cadena
Convertir un Node.js legible en un ArrayBuffer
Convertir un Node.js legible a JSON
Convertir un ReadableStream en un Blob
Convertir un ReadableStream en un Buffer
Convertir un ReadableStream en una cadena
Convertir un ReadableStream en un Uint8Array
Convierta un ReadableStream en una matriz de fragmentos
Convertir un ReadableStream en un ArrayBuffer
Convertir un ReadableStream a JSON
Prueba
Salga temprano con el corredor de pruebas Bun
Genere informes de cobertura de código con el ejecutor de pruebas Bun
Marcar una prueba como "todo" con el corredor de pruebas Bun
Migrar de Jest al corredor de pruebas de Bun
Funciones simuladas en bun test
Vuelva a ejecutar las pruebas varias veces con el ejecutor de pruebas Bun
Ejecute pruebas en modo reloj con Bun
Ejecute sus pruebas con el corredor de pruebas Bun
Establezca un umbral de cobertura de código con el ejecutor de pruebas Bun
Establecer un tiempo de espera por prueba con el corredor de pruebas Bun
Establecer la hora del sistema en el ejecutor de pruebas de Bun
Saltar pruebas con el corredor de pruebas Bun
Espiar métodos en bun test
Actualizar instantáneas en bun test
Utilice pruebas de instantáneas en bun test
Escribe pruebas DOM del navegador con Bun y happy-dom
utilitario
Compruebe si el archivo actual es el punto de entrada
Comprueba si dos objetos son profundamente iguales.
Comprimir y descomprimir datos con DEFLATE
Comprimir y descomprimir datos con gzip
Convertir la URL de un archivo en una ruta absoluta
Convertir una ruta absoluta en la URL de un archivo
Detectar cuando se ejecuta código con Bun
Codificar y decodificar cadenas base64
Escapar de una cadena HTML
Obtener la ruta absoluta del archivo actual
Obtener la ruta absoluta al punto de entrada actual
Obtenga la versión actual de Bun
Obtener el directorio del archivo actual
Obtener el nombre del archivo actual
Obtener la ruta a un archivo bin ejecutable
Hash una contraseña
Dormir durante un número fijo de milisegundos
WebSocket
Cree un servidor WebSocket de publicación y suscripción
Construya un servidor WebSocket simple
Habilitar la compresión para mensajes WebSocket
Establecer datos contextuales por socket en un WebSocket
Escribir archivo
Agregar contenido a un archivo
Copiar un archivo a otra ubicación
Eliminar un archivo
Escribir un Blob en un archivo
Escribir un archivo incrementalmente
Escribir un archivo en stdout
Escribir un ReadableStream en un archivo
Escribir una respuesta a un archivo
Escribir una cadena en un archivo
Escribir en la salida estándar
Consulte la guía Proyecto > Contribución para comenzar a contribuir con Bun.
Consulte la página Proyecto > Licencia para obtener información sobre las licencias de Bun.