Dokumentation • Discord • Probleme • Roadmap
Bun ist ein All-in-One-Toolkit für JavaScript- und TypeScript-Apps. Es wird als einzelne ausführbare Datei namens bun
ausgeliefert.
Im Mittelpunkt steht die Bun-Laufzeitumgebung , eine schnelle JavaScript-Laufzeitumgebung, die als Drop-in-Ersatz für Node.js konzipiert ist. Es ist in Zig geschrieben und basiert auf JavaScriptCore, was die Startzeiten und den Speicherverbrauch drastisch reduziert.
bun run index.tsx # TS und JSX werden sofort unterstützt
Das Befehlszeilentool bun
implementiert außerdem einen Test-Runner, einen Script-Runner und einen Node.js-kompatiblen Paketmanager. Statt 1.000 node_modules für die Entwicklung benötigen Sie nur bun
. Die integrierten Tools von Bun sind deutlich schneller als bestehende Optionen und können in bestehenden Node.js-Projekten ohne oder mit geringen Änderungen verwendet werden.
bun test # run testsbun run start # Führe das „Start“-Skript in „package.json“ ausbun install <pkg> # installiere ein Paketbunx cowsay „Hallo Welt!“ # ein Paket ausführen
Bun unterstützt Linux (x64 & arm64), macOS (x64 & Apple Silicon) und Windows (x64).
Linux-Benutzer – Kernel-Version 5.6 oder höher wird dringend empfohlen, das Minimum ist jedoch 5.1.
# mit Installationsskript (empfohlen)curl -fsSL https://bun.sh/install | bash# auf WindowsPowerShell -c "irm bun.sh/install.ps1 | iex"# mit npmnpm install -g bun# mit Homebrewbrew tippen Sie auf Oven-sh/bun brew install bun# mit Dockerdocker Pull Oven/Bun docker run --rm --init --ulimit memlock=-1:-1 Ofen/Brötchen
Um auf die neueste Version von Bun zu aktualisieren, führen Sie Folgendes aus:
Brötchen-Upgrade
Bun veröffentlicht bei jedem Commit für main
automatisch einen Canary-Build. Führen Sie Folgendes aus, um ein Upgrade auf den neuesten Canary-Build durchzuführen:
Brötchen-Upgrade --canary
Canary-Build anzeigen
Einführung
Was ist Brötchen?
Installation
Schnellstart
Typoskript
Vorlage
bun init
bun create
Laufzeit
bun run
Dateitypen
Typoskript
JSX
Umgebungsvariablen
Brötchen-APIs
Web-APIs
Node.js-Kompatibilität
Ausführbare Einzeldatei
Plugins
Watch-Modus
Modulauflösung
Automatische Installation
bunfig.toml
Debugger
Framework-API
Paketmanager
bun install
bun add
bun remove
bun update
bun link
bun pm
Globaler Cache
Arbeitsbereiche
Lebenszyklusskripte
Filter
Sperrdatei
Bereiche und Register
Überschreibungen und Auflösungen
Bundler
Bun.build
Lader
Plugins
Makros
vs esbuild
Testläufer
bun test
Schreibtests
Watch-Modus
Lebenszyklus-Hooks
Spott
Schnappschüsse
Termine und Zeiten
DOM-Tests
Codeabdeckung
Paketläufer
bunx
API
HTTP-Server
WebSockets
Arbeiter
Binäre Daten
Streams
Datei-E/A
import.meta
SQLite
FileSystemRouter
TCP-Sockets
UDP-Sockets
Globals
$ Shell
Untergeordnete Prozesse
Transpiler
Hashing
Konsole
FFI
HTMLRewriter
Testen
Dienstprogramme
Knoten-API
Globus
Semver
Projekt
Roadmap
Benchmarking
Mitwirken
Windows bauen
Lizenz
Binär
Konvertieren Sie einen Blob in eine DataView
Konvertieren Sie einen Blob in einen ReadableStream
Konvertieren Sie einen Blob in einen String
Konvertieren Sie einen Blob in ein Uint8Array
Konvertieren Sie einen Blob in einen ArrayBuffer
Konvertieren Sie einen Puffer in einen Blob
Konvertieren Sie einen Puffer in einen ReadableStream
Konvertieren Sie einen Puffer in einen String
Konvertieren Sie einen Puffer in ein Uint8Array
Konvertieren Sie einen Puffer in einen ArrayBuffer
Konvertieren Sie eine DataView in einen String
Konvertieren Sie ein Uint8Array in einen Blob
Konvertieren Sie ein Uint8Array in einen Puffer
Konvertieren Sie ein Uint8Array in eine DataView
Konvertieren Sie ein Uint8Array in einen ReadableStream
Konvertieren Sie ein Uint8Array in einen String
Konvertieren Sie ein Uint8Array in einen ArrayBuffer
Konvertieren Sie einen ArrayBuffer in einen Blob
Konvertieren Sie einen ArrayBuffer in einen Puffer
Konvertieren Sie einen ArrayBuffer in einen String
Konvertieren Sie einen ArrayBuffer in ein Uint8Array
Konvertieren Sie einen ArrayBuffer in ein Zahlenarray
Ökosystem
Erstellen Sie ein Frontend mit Vite und Bun
Erstellen Sie eine App mit Astro und Bun
Erstellen Sie eine App mit Next.js und Bun
Erstellen Sie eine App mit Nuxt und Bun
Erstellen Sie eine App mit Qwik und Bun
Erstellen Sie eine App mit Remix und Bun
Erstellen Sie eine App mit SolidStart und Bun
Erstellen Sie eine App mit SvelteKit und Bun
Erstellen Sie einen HTTP-Server mit Elysia und Bun
Erstellen Sie einen HTTP-Server mit Express und Bun
Erstellen Sie einen HTTP-Server mit Hono und Bun
Erstellen Sie einen HTTP-Server mit StricJS und Bun
Containerisieren Sie eine Bun-Anwendung mit Docker
Erstellen Sie einen Discord-Bot
Stellen Sie eine Bun-Anwendung auf Render bereit
Lesen und schreiben Sie Daten mit Mongoose und Bun in MongoDB
Führen Sie Bun als Daemon mit PM2 aus
Führen Sie Bun als Daemon mit systemd aus
Serverseitiges Rendern (SSR) ist eine React-Komponente
Verwenden Sie Drizzle ORM mit Brötchen
Verwenden Sie EdgeDB mit Bun
Verwenden Sie Neons Serverless Postgres mit Bun
Verwenden Sie Prisma mit Brötchen
Verwenden Sie React und JSX
Fügen Sie Sentry zu einer Bun-App hinzu
HTTP
Häufige Verwendung von HTTP-Servern
Konfigurieren Sie TLS auf einem HTTP-Server
Abrufen mit Unix-Domain-Sockets in Bun
Hot-Neuladen eines HTTP-Servers
Proxy-HTTP-Anfragen mit fetch()
Senden Sie eine HTTP-Anfrage mit fetch
Starten Sie einen Cluster von HTTP-Servern
Streamen Sie eine Datei als HTTP-Antwort
Streaming-HTTP-Server mit asynchronen Iteratoren
Streaming von HTTP-Servern mit Node.js-Streams
Laden Sie Dateien über HTTP mit FormData hoch
Schreiben Sie einen einfachen HTTP-Server
Installieren
Fügen Sie eine Abhängigkeit hinzu
Fügen Sie eine Entwicklungsabhängigkeit hinzu
Fügen Sie eine Git-Abhängigkeit hinzu
Fügen Sie eine Peer-Abhängigkeit hinzu
Fügen Sie eine Tarball-Abhängigkeit hinzu
Fügen Sie eine vertrauenswürdige Abhängigkeit hinzu
Fügen Sie eine optionale Abhängigkeit hinzu
Konfigurieren Sie mit Bun Install eine private Registrierung für einen Organisationsbereich
Konfigurieren Sie Git, um die Lockb-Sperrdatei von Bun zu unterscheiden
Konfigurieren eines Monorepo mithilfe von Arbeitsbereichen
Generieren Sie eine für Menschen lesbare Sperrdatei
Installieren Sie ein Paket unter einem anderen Namen
Installieren Sie Abhängigkeiten mit Bun in GitHub Actions
Überschreiben Sie die Standard-NPM-Registrierung für die Bun-Installation
Verwenden der Bun-Installation mit einer Azure Artifacts npm-Registrierung
Bun-Installation mit Artifactory verwenden
Verfahren
Ermitteln Sie die Prozessverfügbarkeit in Nanosekunden
Achten Sie auf STRG+C
Hören Sie auf Betriebssystemsignale
Befehlszeilenargumente analysieren
Von stdin lesen
Lesen Sie stderr aus einem untergeordneten Prozess
Lesen Sie stdout aus einem untergeordneten Prozess
Erzeugen Sie einen untergeordneten Prozess
Erstellen Sie einen untergeordneten Prozess und kommunizieren Sie über IPC
Datei lesen
Überprüfen Sie, ob eine Datei vorhanden ist
Rufen Sie den MIME-Typ einer Datei ab
Lesen Sie eine Datei als ReadableStream
Liest eine Datei als String
Liest eine Datei in einen Puffer
Liest eine Datei in ein Uint8Array
Liest eine Datei in einen ArrayBuffer
Lesen Sie eine JSON-Datei
Beobachten Sie ein Verzeichnis auf Änderungen
Laufzeit
Debuggen von Bun mit der VS Code-Erweiterung
Bun mit dem Web-Debugger debuggen
Definieren und ersetzen Sie statische Globals und Konstanten
Importieren Sie eine JSON-Datei
Importieren Sie eine TOML-Datei
HTML-Datei als Text importieren
Installieren Sie Bun in GitHub Actions und führen Sie es aus
Installieren Sie TypeScript-Deklarationen für Bun
Importpfade neu zuordnen
Umgebungsvariablen lesen
Führen Sie einen Shell-Befehl aus
Legen Sie in Bun eine Zeitzone fest
Umgebungsvariablen festlegen
Streams
Konvertieren Sie ein Node.js Readable in einen Blob
Konvertieren Sie ein Node.js Readable in einen String
Konvertieren Sie ein Node.js Readable in einen ArrayBuffer
Konvertieren Sie ein Node.js Readable in JSON
Konvertieren Sie einen ReadableStream in einen Blob
Konvertieren Sie einen ReadableStream in einen Puffer
Konvertieren Sie einen ReadableStream in einen String
Konvertieren Sie einen ReadableStream in ein Uint8Array
Konvertieren Sie einen ReadableStream in ein Array von Chunks
Konvertieren Sie einen ReadableStream in einen ArrayBuffer
Konvertieren Sie einen ReadableStream in JSON
Prüfen
Steigen Sie mit dem Bun-Testläufer frühzeitig aus
Generieren Sie Codeabdeckungsberichte mit dem Bun-Testläufer
Markieren Sie einen Test mit dem Bun-Testläufer als „Todo“.
Wechseln Sie von Jest zu Buns Testläufer
Scheinfunktionen im bun test
Führen Sie Tests mit dem Bun-Testläufer mehrmals durch
Führen Sie mit Bun Tests im Überwachungsmodus durch
Führen Sie Ihre Tests mit dem Bun-Testläufer durch
Legen Sie mit dem Bun-Testläufer einen Schwellenwert für die Codeabdeckung fest
Legen Sie mit dem Bun-Testläufer ein Timeout pro Test fest
Stellen Sie die Systemzeit in Buns Test Runner ein
Überspringen Sie Tests mit dem Bun-Testläufer
Spionieren Sie Methoden im bun test
aus
Schnappschüsse im bun test
aktualisieren
Verwenden Sie Snapshot-Tests im bun test
Schreiben Sie Browser-DOM-Tests mit Bun und Happy-Dom
Nutzen
Überprüfen Sie, ob die aktuelle Datei der Einstiegspunkt ist
Überprüfen Sie, ob zwei Objekte zutiefst gleich sind
Komprimieren und dekomprimieren Sie Daten mit DEFLATE
Komprimieren und dekomprimieren Sie Daten mit gzip
Konvertieren Sie eine Datei-URL in einen absoluten Pfad
Konvertieren Sie einen absoluten Pfad in eine Datei-URL
Erkennen Sie, wann Code mit Bun ausgeführt wird
Codieren und decodieren Sie Base64-Strings
Escape einer HTML-Zeichenfolge
Ermitteln Sie den absoluten Pfad der aktuellen Datei
Rufen Sie den absoluten Pfad zum aktuellen Einstiegspunkt ab
Holen Sie sich die aktuelle Bun-Version
Rufen Sie das Verzeichnis der aktuellen Datei ab
Rufen Sie den Dateinamen der aktuellen Datei ab
Rufen Sie den Pfad zu einer ausführbaren Bin-Datei ab
Hashen Sie ein Passwort
Schlafen Sie für eine feste Anzahl von Millisekunden
WebSocket
Erstellen Sie einen Publish-Subscribe-WebSocket-Server
Erstellen Sie einen einfachen WebSocket-Server
Komprimierung für WebSocket-Nachrichten aktivieren
Legen Sie kontextbezogene Daten pro Socket für einen WebSocket fest
Datei schreiben
Inhalt an eine Datei anhängen
Kopieren Sie eine Datei an einen anderen Speicherort
Eine Datei löschen
Schreiben Sie einen Blob in eine Datei
Schreiben Sie eine Datei inkrementell
Schreiben Sie eine Datei nach stdout
Schreiben Sie einen ReadableStream in eine Datei
Schreiben Sie eine Antwort auf eine Datei
Schreiben Sie eine Zeichenfolge in eine Datei
Schreiben Sie auf stdout
Lesen Sie den Leitfaden „Projekt“ > „Beitragen“, um mit dem Beitragen zu Bun zu beginnen.
Weitere Informationen zur Bun-Lizenzierung finden Sie auf der Seite „Projekt > Lizenz“.