Windows-Unterstützung
- Bun kann unter Windows 10 und neuer ausgeführt werden
- Besteht 98 % der Bun-Testsuite von macOS und Linux
- Mit integriertem npm-kompatiblem Paketmanager ist die Installation einer Vite-React-App 18-mal schneller als mit
yarn und 30-mal schneller als mit npm
- Unterstützt schnellere Skriptausführung unter Windows mit dem Dateiformat
.bunx
- Optimiert die Node.js-API unter Windows durch Nutzung der schnellsten Systemaufrufe
- Beispiel:
fs.readdir() ist 58 % schneller als bei Node.js
Bun ist eine JavaScript-Runtime
- Unterstützt JavaScript, TypeScript und JSX
- Kommandozeilen-Tools wie
tsc sind bis zu 2-mal schneller als in Bun 1.0
- Bun Shell ist jetzt eine plattformübergreifende Shell, die auch unter Windows verfügbar ist
- Enthält Core-Utilities wie
ls, rm, cat usw.
- Shell kann aus JavaScript und TypeScript über die API
Bun.$ ausgeführt werden
Bun.Glob
- Bietet eine integrierte Glob-API für Datei- und String-Matching
- Ähnlich wie
fast-glob und micromatch, aber beim String-Matching 3-mal schneller
Bun.Semver
- Neue Semver-API zum Parsen und Sortieren von semver-Strings
- Ähnlich wie das Paket
node-semver, aber 20-mal schneller
Bun.stringWidth()
- Neue API zur Messung der sichtbaren Breite von Strings im Terminal
- Unterstützt ANSI-Escape-Codes, vollbreite Zeichen, Grapheme und Emojis
server.url: Mit der Eigenschaft server.url kann die URL eines mit Bun.serve() erstellten HTTP-Servers abgerufen werden
server.requestIP(): Mit der Methode server.requestIP() kann die IP-Adresse einer HTTP-Anfrage abgerufen werden
subprocess.resourceUsage(): Auf die CPU- und Speicherauslastung eines mit Bun.spawn() erzeugten Unterprozesses kann über die Methode resourceUsage() zugegriffen werden
- Verbesserte Node.js-Kompatibilität
- Verschiedene API-Verbesserungen, darunter Unterstützung für die Client-API von
node:http2, Date.parse()-Kompatibilität und rekursives fs.readdir()
- IPC zwischen Bun und Node.js möglich
- Unterstützt auch einige nicht dokumentierte Node.js-APIs
- Web API: Unterstützung für standardisierte Web-APIs wie
WebSocket, performance.mark(), fetch() mit Brotli-Komprimierung und URL.canParse()
Bun ist ein npm-kompatibler Paketmanager
- Mit
bun install lassen sich npm-Pakete bis zu 29-mal schneller installieren
- Verbesserungen bei Lifecycle-Skripten,
trustedDependencies, bun pm trust und weiteren Funktionen
Bun ist ein JavaScript-Bundler
- Unterstützt das Bundling von unter Node.js ausführbarem Code mit
bun build --target=node
- Mit dem Flag
--compile können TypeScript- und JavaScript-Dateien zu ausführbaren Einzeldateien kompiliert werden
Bun ist ein Test-Runner
- Bietet ein integriertes Testmodul mit derselben API wie Jest
- Neue
expect()-Matcher hinzugefügt und Unterstützung für Module-Mocking
Integrierte SQLite-Unterstützung
- SQLite-Unterstützung mit einer von
better-sqlite3 inspirierten API
- Verbesserungen bei Multi-Statement-Queries, detaillierten Fehlermeldungen, Datenbankimport und integrierter Unterstützung
Meinung von GN⁺
- Bun ist ein JavaScript-Toolkit, das die Performance bei gleichzeitiger Kompatibilität mit Node.js deutlich verbessert und durch die Windows-Unterstützung eine breitere Entwickler-Community erreichen kann.
- Der integrierte Test-Runner und die SQLite-Unterstützung ermöglichen es Entwicklern, auch ohne zusätzliche Tools effizient zu arbeiten.
- Die hohe Geschwindigkeit von Bun und die verbesserte Developer Experience können sich besonders bei großen Projekten oder performancekritischen Anwendungen bemerkbar machen.
- Trotz der vielen Funktionen und Verbesserungen von Bun sind kontinuierliche Weiterentwicklung und Feedback aus der Community nötig, um vollständige Kompatibilität mit dem breiten Paket-Ökosystem von Node.js zu erreichen.
- Es braucht weitere Analysen dazu, wie die neuen Funktionen von Bun mit bestehenden Node.js-basierten Tools konkurrieren oder mit ihnen zusammenarbeiten können.
1 Kommentare
Hacker-News-Kommentare
Beeindruckende Liste an Änderungen in Bun
Buns Makro-Funktion
Fragen zum Einsatz von Bun und Deno
Ein großer Fan von Bun
Einschätzung zum neuen Bun-Release
.js-Einstiegspunkt eines Projekts und die Runtime zu bündeln, um eine ausführbare Datei ohne Abhängigkeiten zu erzeugen. Das ist nützlich, wenn man Nutzern ein einzelnes Binary bereitstellen möchte, allerdings ist die Dateigröße derzeit noch recht groß (bei kleinen Projekten unter GNU/Linux über 90 MB).Bitte an das Bun-Team
Beteiligung eines Bun-Entwicklers
Fragen zur Stabilität von Bun
Buns Erlösmodell und VC-Finanzierung