Bun v1.3.10
(bun.com)- Das REPL wurde vollständig in Zig neu geschrieben und bietet sofortige Ausführung sowie eine umfangreiche Terminal-UI mit Funktionen wie Kopieren in die Zwischenablage, Tab-Vervollständigung und Speicherung des Verlaufs
- Mit dem Befehl zur Kompilierung für das Browser-Ziel lässt sich eine einzelne HTML-Datei erzeugen, in die alles inline eingebettet ist, sodass sie auch ohne Server ausgeführt werden kann
- TC39-konforme ES-Dekoratoren werden vollständig unterstützt, sodass sich aktuelle Syntax wie
accessor,Symbol.metadataundaddInitializernutzen lässt - Enthält zahlreiche Plattform- und Performance-Verbesserungen wie Windows-ARM64-Unterstützung, Optimierung von Barrel-Imports, Option für Test-Wiederholungen und eine leistungsstärkere JavaScriptCore-Engine
- Insgesamt ein Release, das Developer Experience, Performance und Kompatibilität von Bun deutlich verbessert
Neues REPL
- Das REPL wurde durch eine native Implementierung auf Zig-Basis ersetzt und kann ohne Abhängigkeit von externen npm-Paketen sofort ausgeführt werden
- Unterstützt Syntax-Highlighting, Emacs-Keybindings, Tab-Vervollständigung, Speicherung des Verlaufs und mehrzeilige Eingaben
- Bietet eingebaute Befehle wie
.copy,.help,.exitund.editor - Unterstützt persistente
const-/let-Deklarationen, top-level await sowie sowohl import als auch require
--compile --target=browser
- Mit
bun build --compile --target=browserwird HTML erzeugt, in das JavaScript, CSS und Assets inline eingebettet sind- Tags wie
<script src="...">und<link rel="stylesheet">werden jeweils in Inline-Code umgewandelt - Kann auch in einer
file://-Umgebung ohne CORS-Beschränkungen ausgeführt werden - Unterstützt TypeScript, JSX, React, CSS, ESM und CJS
- Tags wie
TC39-konforme ES-Dekoratoren
- Stage-3-Standard-Dekoratoren werden vollständig unterstützt
- Implementiert aktuelle Spezifikationen wie das Schlüsselwort
accessor,Symbol.metadataundClassMethodDecoratorContext - Unterstützt Feld-, Methoden- und Klassen-Dekoratoren sowie Initialisierer (
addInitializer) - Auch bestehende experimentelle TypeScript-Dekoratoren (
experimentalDecorators) funktionieren weiterhin
- Implementiert aktuelle Spezifikationen wie das Schlüsselwort
Windows-ARM64-Unterstützung
- Bun kann auf ARM64-basiertem Windows wie Snapdragon-Systemen ausgeführt und gebaut werden
- Cross-Compilation wird für das Ziel
bun-windows-arm64unterstützt - Kann sowohl über CLI als auch API identisch verwendet werden
- Cross-Compilation wird für das Ziel
Optimierung von Barrel-Imports
- Erkennt automatisch Re-Export-Strukturen von Barrel-Dateien wie bei
import { Button } from 'antd'- Automatische Optimierung bei gesetztem
"sideEffects": false - Kann mit der Option
optimizeImportsexplizit angegeben werden - Durch das Parsen nur benötigter Submodule wird die Build-Geschwindigkeit um bis zu das Doppelte erhöht
- Automatische Optimierung bei gesetztem
Optimierung der Bundle-Ausgabe
- In ESM-/CJS-Bundles werden Anzahl der Closures und Heap-Speichernutzung reduziert
- 11 % weniger Objekte, 4 MB weniger Heap-Größe sowie deutlich weniger Funktions- und Umgebungsobjekte
- Wird automatisch ohne Codeänderungen angewendet
bun test --retry
- Ermöglicht das Festlegen einer Standardanzahl von Wiederholungen für alle Tests (
--retry N)- Die Option
{ retry: N }einzelner Tests hat Vorrang - Im JUnit-XML-Reporter wird jeder Versuch als eigenes
<testcase>protokolliert
- Die Option
Verbesserungen bei Bun.generateHeapSnapshot("v8")
- Mit der Option
"arraybuffer"wird der Heap-Snapshot als ArrayBuffer zurückgegeben- Vermeidet den Overhead der String-Konvertierung bei der Verarbeitung großer Snapshots
TLS- und Zertifikats-Updates
- Verbesserte Performance durch Keepalive-Unterstützung für mTLS- und benutzerdefinierte CA-Verbindungen
- Gleiche TLS-Einstellungen werden in einer globalen Registry dedupliziert
- Root-Zertifikate wurden auf NSS 3.119 (Firefox 147.0.3) aktualisiert
- Vier CommScope-Root-Zertifikate wurden entfernt
Upgrade der JavaScriptCore-Engine
- Zahlreiche Performance-Verbesserungen, darunter 168-fach schnelleres String-Slicing, 10,5-fach schnelleres
endsWith, 1,6-fach schnellerer Zugriff aufRegExp-Flags und bis zu 7-fach schnellerespath.parse()structuredCloneist bei Arrays und Arrays von Objekten bis zu 25-mal schnellerBuffer.slice()undsubarray()wurden um etwa das 1,8-Fache verbessert- Interne Optimierungen bei
BigInt, String-Iteratoren und Integer-Operationen
Wichtige Bugfixes
- Behebt ein Problem mit der Pipe-Kompatibilität zu Python-asyncio-MCP-Servern (
Bun.spawn) - Node.js-Kompatibilität: zahlreiche Korrekturen bei
AsyncLocalStorage,fs.watch, Verarbeitung vonhttp-Headern und GC-bezogenen Abstürzen - Bun API: Abstürze und Speicherlecks rund um
spawn,plugin,sqlundbuildbehoben - Umfassende Stabilitätsverbesserungen bei WebSocket, bun install, CSS-Parser, bun shell und Windows-Umgebungen
- Sicherheitslücken behoben, darunter HTTP-Header-Injection, Pfad-Traversal in Tarballs und S3-Stream-Lecks
1 Kommentare
Ich habe wirklich ziemlich lange verfolgt, wie sich Bun entwickelt, und es seit den Anfangstagen immer mal wieder benutzt. Dabei hatte ich den Eindruck, dass die Bun-Entwickler die JS/TS-Welt ganz aufrichtig schneller machen wollen. Erstaunlich. Wirklich ...