Bun 1.3 veröffentlicht
(bun.sh)- Bun 1.3 ist ein großes Release und entwickelt sich zu einer Full-Stack-JavaScript-Runtime, die sowohl Frontend- als auch Backend-Entwicklung unterstützt
- Zentrale Funktionen wie ein integrierter Frontend-Entwicklungsserver mit React- und CSS-Bundles sowie Clients für MySQL, PostgreSQL, SQLite und Redis wurden integriert
- Mit Kompilierung zu einer einzelnen ausführbaren Datei über
bun buildsowie Unterstützung für Code Signing und Cross-Compilation wird die Bereitstellung einfacher - Der Paketmanager führt Funktionen ein, die große Monorepos besser unterstützen, darunter isolierte Installationen (isolated installs), eine Security-Scanner-API und einen Dependency-Katalog (catalog)
- In nahezu allen Bereichen wurden umfassende Verbesserungen vorgenommen – darunter Test Runner, Web API, Sicherheit, Node.js-Kompatibilität und Performance – und Bun macht damit den Sprung zu einer „vollständigen Runtime-Plattform“
Integration einer Full-Stack-Runtime
- Bun 1.3 integriert Full-Stack-Entwicklungsfunktionen wie HTML-Ausführung, Routing, Hot Reload und WebSocket in
Bun.serve()- Unterstützung für React Fast Refresh und natives HMR
- Backend- und Frontend-Server werden in einem einzigen Prozess zusammengeführt, wodurch CORS-Probleme grundlegend beseitigt werden
- Mit
bun build --compilelassen sich Frontend und Backend zu einer einzelnen ausführbaren Datei bündeln
Datenbank- und Redis-Unterstützung
- Bun.SQL unterstützt MySQL, MariaDB, PostgreSQL und SQLite einheitlich über eine einzige API
- PostgreSQL-Array-Typen lassen sich über den Helper
sql.arrayeinfach verarbeiten - Detaillierte Verbesserungen wie Unix-Domain-Socket-Verbindungen, Simple-Query-Protokoll und Null-Behandlung
- PostgreSQL-Array-Typen lassen sich über den Helper
- Ein integrierter Redis-Client wurde hinzugefügt, mit bis zu 7,9-facher Performance gegenüber ioredis und vollständiger Pub/Sub-Unterstützung
Bundler- und Build-Funktionen
- Mit der API
Bun.build()lassen sich ausführbare Dateien direkt im Code erzeugen - Unterstützung für Code Signing (macOS, Windows), Cross-Compilation (Linux/macOS/Windows) und Metadaten-Konfiguration
- Ein intelligenterer Minifier entfernt ungenutzten Code und unterstützt JSX-Konfigurationsoptionen sowie Glob-Muster
Erweiterte Paketmanagement-Funktionen
- Isolated installs sind standardmäßig aktiviert; jeder Workspace kann nur auf seine eigenen Abhängigkeiten zugreifen
- Mit der Funktion Catalog lassen sich Abhängigkeitsversionen in einem Monorepo zentral verwalten
- Die Security-Scanner-API und minimumReleaseAge stärken den Schutz vor Supply-Chain-Angriffen
- Mit
bun why,bun update --interactive,bun info,bun auditist ein Verwaltungstoolset auf npm-/pnpm-Niveau vollständig vorhanden
Verbesserungen bei Tests und Debugging
bun testerhält VS Code Test Explorer-Integration, parallele Tests (test.concurrent), zufällige Ausführung und Typ-Tests (expectTypeOf)- Unterstützung für
.failing,.serial,.each-Chains sowie automatische Beibehaltung der Einrückung bei Snapshots test.onlywird in CI-Umgebungen blockiert, außerdem wurde die Konsistenz der Testreihenfolge verbessert
Ausbau von Web APIs und Runtime-Standards
- YAML-Parsing/-Serialisierung ist integriert,
.yaml-Dateien können direkt importiert werden - Die API
request.cookiesunterstützt automatische Cookie-Verwaltung - Unterstützung für Stream-Helper wie
ReadableStream .text()/.json(), Zstandard-Komprimierung und Streaming-Laden von WebAssembly - Mit DisposableStack/AsyncDisposableStack wird das Aufräumen von Ressourcen vereinfacht
Sicherheits- und Systemfunktionen
- Mit
Bun.secretslässt sich der sichere Speicher des Betriebssystems (z. B. Keychain) nutzen Bun.CSRFbietet eine API zum Erzeugen und Validieren von CSRF-Tokens- Das crypto-Modul wurde um den Faktor 400 beschleunigt, außerdem wurden Diffie-Hellman, HKDF und Primzahl-Operationen verbessert
Verbesserte Node.js-Kompatibilität
- Mehr als 800 zusätzliche Node.js-Tests werden nun bestanden;
node:test,node:vm,worker_threads,fs,http2und mehr wurden stark ausgebaut require.extensions,process.binding(), Steuerung nativer Add-ons,perf_hooks,tls,clusterund die meisten Core-Module werden vollständig unterstützt- N-API-Kompatibilität von über 98 %, Runtime-Identifikation auf demselben Niveau wie Node.js 24.3.0
Verbesserte Developer Experience
- Änderung der Standard-TypeScript-Konfiguration (
"module": "Preserve") - Mehr Kontrolle über die Runtime mit der Umgebungsvariable
BUN_OPTIONS,--console-depth,--user-agentund mehr - Unterstützung für Preload-Skripte (
BUN_INSPECT_PRELOAD) und SQL Preconnect - Verbessertes
bunxermöglicht die Ausführung auch bei abweichenden Paket-/Binärnamen
Performance und Stabilität
- Geringere CPU-Leerlaufnutzung, effizientere GC, 10–30 % weniger Speicherverbrauch, 60 % schnellere Builds
postMessagebis zu 500-mal,bun install2,5-mal undArray.includes2,8-mal schneller- Optimierungen auf WebKit- und Zig-Ebene verbessern die Geschwindigkeit der Runtime insgesamt
- Hunderte Bugfixes und die Behebung von Memory Leaks erhöhen die Stabilität deutlich
Wichtige Änderungen
- Die Typstruktur von
Bun.serve()wurde geändert undstaticinroutesumbenannt - Die Aufrufweise des SQL-Clients wurde von funktional zu Tagged Template geändert
- Das Linux-GC-Signal wurde durch SIGPWR ersetzt
- Die angezeigte Node.js-Version wurde von 22.x auf 24.3.0 geändert
Bun 1.3 markiert einen Wendepunkt und positioniert sich über eine einfache Runtime hinaus als „integrierte Plattform, die Node, Deno, Vite und pnpm zusammenführt“
5 Kommentare
Auch wenn ich es nur kurz ausprobiert habe, finde ich, dass es von Anfang an einen riesigen Sprung nach vorn gemacht hat und mich sogar dazu bringt zu denken: Soll ich es noch einmal ausprobieren? :D
Ich hoffe, dass sich das gut weiterentwickelt.
Davon gab es also solche Pläne!!
Mir gefällt, dass die SQL-Schnittstelle vereinheitlicht wurde.
Es wird wohl einen Grund geben, warum Vite es nicht zusammengeführt hat, aber ich frage mich, wie Bun sich in der Praxis bewährt.