1 Punkte von GN⁺ 2025-01-25 | 1 Kommentare | Auf WhatsApp teilen

Bun-1.2-Update

  • Bun 1.2 verbessert die Node.js-Kompatibilität erheblich und bietet eine integrierte S3-Objektspeicher-API sowie einen Postgres-Client. bun install verwendet jetzt das textbasierte bun.lock. Die Leistung von Express wurde um das Dreifache gesteigert.

Node.js-Kompatibilität

  • Bun wurde als Ersatz für Node.js entwickelt und verbessert die Kompatibilität durch das Ausführen der Node.js-Testsuite.
  • Durch die Behebung von Unterschieden bei internen APIs und Fehlermeldungen besteht es jetzt mehr als 90 % der Tests für Node.js-Module.

HTTP/2-Server und weitere Module

  • Mit node:http2 können HTTP/2-Server erstellt werden, was auch für gRPC-Server erforderlich ist.
  • Mit node:dgram können UDP-Sockets gebunden und verbunden werden.
  • Mit node:cluster lassen sich mehrere Bun-Instanzen erzeugen, um Aufgaben parallel zu verarbeiten.
  • Das Modul node:zlib wurde in nativen Code neu geschrieben und verdoppelt damit die Leistung.

S3-Unterstützung

  • Bun 1.2 enthält eine integrierte S3-API zum Lesen, Schreiben und Löschen von Dateien.
  • Der S3-Client von Bun ist in nativem Code geschrieben und 5-mal schneller als Node.js.

Postgres-Unterstützung

  • Mit Bun.sql lassen sich SQL-Abfragen ausführen, wobei SQL-Injection verhindert wird.
  • Bun.sql ist 50 % schneller als andere Postgres-Clients.

Paketmanager

  • bun install verwendet jetzt das textbasierte bun.lock, ist dadurch schneller und reduziert Merge-Konflikte.
  • In package.json können Kommentare und nachgestellte Kommas verwendet werden.
  • Die Datei .npmrc kann gelesen werden, um die npm-Registry zu konfigurieren.

Test Runner

  • Bun bietet einen integrierten Test Runner, mit dem sich Tests einfach schreiben und ausführen lassen.

1 Kommentare

 
GN⁺ 2025-01-25
Hacker-News-Kommentare
  • Einige Nutzer stellen infrage, externe Bibliotheken in die Kernbibliothek aufzunehmen, und meinen, es wäre besser, sie als optionale Bibliotheken zu belassen

    • Eine Runtime sollte sehr vorsichtig damit sein, was sie in die Standardbibliothek aufnimmt, und bereits enthaltene Dinge können ein Projekt unnötig kompliziert machen
  • Es gibt die Meinung, dass die Erfahrung mit Bun sehr gut war

    • TypeScript-, Jest-, React- und Webpack-Konfigurationen waren umständlich, aber Bun ist einfach und effektiv
    • Zur Integration externer Bibliotheken könne man nichts sagen, aber generell konzentriere man sich auf Dinge, die häufig nachgefragt werden
  • Es gibt die Meinung, dass das Standardverhalten zu magisch ist

    • Zum Beispiel ist es eine überraschende Entscheidung, Nutzern eine presigned URL zu geben, statt eine S3-Datei herunterzuladen
    • Es ist nicht klar, wie sich dieses Verhalten deaktivieren lässt
  • Es gibt die Meinung, dass eingebaute Funktionen einen großen Unterschied machen

    • Es gefällt, dass Web APIs in V8- und WebKit-Runtimes standardmäßig enthalten sind
    • S3 könnte jedoch zu weit gehen; SQL-Treiber seien nachvollziehbar, aber man müsse überlegen, bis zu welchem Punkt Dinge aufgenommen werden sollten
    • Durch das Hinzufügen sensibler APIs könnten Sicherheitsprobleme übersehen werden
  • Es gibt die Meinung, dass ein Kunde Bun in der Produktion nutzt und die Developer Experience sehr gut ist

    • Die Developer Experience kann langfristig eine große Rolle spielen
    • Wenn Codebasis oder Prozesse schlecht sind, kann man gute Talente verlieren
  • Es gibt die Meinung, dass Buns Funktionsliste so lang ist, dass Zweifel bestehen, ob alles robust und fehlerfrei ist

    • Aus Sicht des Projektmanagements ist nicht nachvollziehbar, Zeit für S3-Unterstützung aufzuwenden
    • Mehr Next.js-Kunden zu gewinnen wäre wohl ein besserer Weg für Wachstum
  • In Bun 1.2 wurde Unterstützung für HTML-Importe hinzugefügt

    • Mit einer einzigen import-Anweisung lässt sich die gesamte Frontend-Toolchain ersetzen
    • Es gibt die Meinung, dass dies eine sehr überraschende und coole Funktion ist
  • Es gibt die Meinung, dass die erste Nutzung von Bun eine sehr beeindruckende Erfahrung war

    • Webpack- oder Vite-Konfigurationen waren mühsam, aber Bun funktionierte sofort
    • Für kleine Skripte lohnte sich Konfiguration bisher nicht, aber Bun funktionierte hervorragend
  • Es gibt die Meinung, dass man dachte, Bun würde als Alternative zu Node.js scheitern, nach dem Ausprobieren aber zufrieden war

    • Ein eigenständiges Skript zur Verarbeitung von TypeScript und SQLite-DB-Updates ließ sich leicht erstellen
    • Es wurde auch in neuen JS-/TypeScript-Projekten ausprobiert, und alles funktionierte schnell
  • Es gibt die Meinung, dass der Qualitätssicherungsprozess nur Formsache ist

    • Änderungen scheinen zusammengeführt und veröffentlicht worden zu sein, obwohl der Build nicht bestanden hatte
    • Wenn Tests instabil sind, dürfte es schwierig sein, Regressionen nachzuverfolgen