Zum Inhalt springen

Bun 1.4.3 bringt bun check, einen schnelleren TypeScript-Typprüfer

Bun 1.4.3 bringt bun check, einen eingebauten TypeScript-Typprüfer, der laut Bun 3- bis 6,4-mal schneller als tsc 7.0.2 läuft und alle 51.210 Konformitätstests besteht.

Von Tech AI Wire Team

5 Min. Lesezeit

XLinkedIn
Screenshot of the Bun blog post Bun v1.4.3 by Jarred Sumner, dated October 10, 2026, with install commands and a table of contents listing bun check.

Die Zahlen

of 51,210 TypeScript 7.0.2 conformance tests passed
51,210
less memory than tsc 7.0.2, per Bun
2.2x-4.9x
less CPU use while a server sits idle
67-89%
bun check speedup over tsc 7.0.2, by project (Bun's figures)
Next.js packages/next
6.4x
mikro-orm
5x
VS Code src
4.8x
Playwright
4.2x
Storybook scripts
3.5x
Next.js root
3.1x
Nuxt
3x

Bun 1.4.3 ist am 10. Oktober 2026 erschienen und bringt bun check, einen TypeScript-Typprüfer, der in die Runtime eingebaut ist. Laut Bun läuft er 3- bis 6,4-mal schneller als tsc 7.0.2, der eigene Typprüfer von Microsoft, und braucht dabei 2,2- bis 4,9-mal weniger Speicher. Ein Typprüfer liest Ihren Code und meldet Typfehler, ohne ihn auszuführen. Bei großen Projekten ist diese Prüfung oft einer der langsamsten Schritte in einer CI-Pipeline, also dem automatisierten Build, der bei jedem Pull Request läuft.

Bun ist eine JavaScript-Runtime, die außerdem einen Paketmanager, einen Bundler und einen Test-Runner mitbringt. Die Reihe 1.4 ist die Version, die im August den Code von Bun von Zig auf Rust umgestellt hat.

Was bun check macht

Laut dem Release-Beitrag zu Bun 1.4.3 ist bun check eine Portierung von typescript-go. Das ist der in Go geschriebene Compiler von TypeScript 7, der als tsc 7 ausgeliefert wird. Laut der Dokumentation von Bun liest der Befehl tsconfig.json, meldet dieselben Fehler wie tsc aus TypeScript 7 und nutzt jeden CPU-Kern.

Er prüft nur. Er schreibt nie JavaScript, .d.ts-Typdateien, Source Maps oder .tsbuildinfo-Dateien. Er hat auch keinen Language Server, daher lässt Ihr Editor weiterhin seine eigene Kopie von TypeScript laufen. Der Befehl endet mit Code 1, wenn er einen Fehler findet, und mit 0, wenn er keinen findet.

Bun nennt zwei Genauigkeitstests:

  • Er besteht 51.210 von 51.210 Tests in der Konformitäts-Testsuite von TypeScript 7.0.2.
  • Über 72 Open-Source-Projekte hinweg lieferten 1.102 von 1.103 Konfigurationen identische Ergebnisse. Bun verglich 286.267 Fehler und fand eine Abweichung, in vuejs/core.

Dieselbe Prüfung läuft auch in anderen Befehlen. bun --check, bun test --check, bun build --check und bun run --check prüfen zuerst die Typen und erledigen dann ihre normale Aufgabe.

Die Benchmark-Zahlen von Bun

Bun hat seinen Vergleich auf einem Mac mit Apple Silicon und 16 Kernen gegen tsc 7.0.2 durchgeführt:

ProjektDateienbun checktsc 7.0.2Beschleunigung
VS Code src9,7951.24 s5.98 s4.8x
mikro-orm2,8831.20 s5.97 s5.0x
Next.js packages/next2,8810.28 s1.82 s6.4x
Next.js root3,5470.42 s1.28 s3.1x
Storybook scripts1,0390.27 s0.96 s3.5x
Nuxt8390.27 s0.80 s3.0x
Playwright7060.15 s0.64 s4.2x

Auch der Speicherverbrauch sank. Beim Quellcode von VS Code maß Bun 2,14 GB für bun check gegenüber 7,97 GB für tsc 7.0.2. Der Beitrag ist beim oberen Ende der Spanne nicht ganz einheitlich. Im Text heißt es „3- bis 6,4-mal schneller“, während der Alt-Text des Diagramms 3- bis 7-mal nennt.

Ein externer Benchmark

Ein unabhängiges Projekt liefert eine zweite Reihe von Zahlen. tsrs ist eine Rust-Portierung des Typprüfers von TypeScript 7 durch den Entwickler Max Schwenk. Laut seinem README wurde es „größtenteils von KI-Coding-Agenten geschrieben, unter der Leitung und Prüfung von Max Schwenk“. Es konkurriert mit bun check, daher verdienen seine Angaben dieselbe Vorsicht wie die von Bun.

Auf der Codebasis von VS Code, ausgeführt auf einem Linux-Rechner mit 64 Kernen, meldet tsrs diese Zeiten:

PrüferZeitSpitzenspeicher
tsc 7 (tsgo 7.0.2)9.79 s7.52 GiB
bun check (Bun 1.4.3 canary)0.87 s2.86 GiB
tsrs0.53 s2.64 GiB

Das README von tsrs fügt einen wichtigen Vorbehalt hinzu. Standardmäßig nutzt tsgo 4 Prüf-Threads, während bun check jeden Kern nutzt. Als tsrs allen drei Werkzeugen auf VS Code 16 Threads gab, brauchte tsgo 4,54 s und bun check 1,49 s. Der Abstand ist real, aber kleiner, als die Standardeinstellungen vermuten lassen.

Der Rest der Version

Bun 1.4.3 ändert auch die Runtime selbst:

  • CPU im Leerlauf. Server verbrauchen im Leerlauf 67 % bis 89 % weniger CPU. Bun führte die Verschwendung auf einen Garbage-Collection-Timer mit einer Sekunde zurück, der eingeschaltet blieb. Über zwei Minuten Leerlauf sank ein Express-Server von 282 auf 57 CPU-Millisekunden.
  • Bun.FetchSession. Eine neue API gibt einer Gruppe von Anfragen eigene Einstellungen für TLS, Proxy und Keep-Alive sowie einen eigenen Verbindungspool.
  • Bun.ModuleGraph. Eine experimentelle API führt viele Kopien einer App in einem Prozess aus. Der Beitrag warnt, dass graph.dispose() „keine Sicherheits-Sandbox ist“.
  • node:http. Große Antworten sind bis zu 2,7-mal schneller.
  • bun install. Es überspringt jetzt Tarballs, die es nicht installieren wird. Bei der Installation von npm@10.9.2 sank die Zahl von 196 Tarballs auf 1.
  • Sicherheit. Die Version behebt CVE-2026-48618 beim Abgleich von TLS-Hostnamen. Außerdem begrenzt sie die Rate von HTTP/2-Stream-Resets wegen CVE-2023-44487 und CVE-2025-8671.

Was das für Entwickler bedeutet

Für die meisten Projekte ist der Wechsel eine Zeile. Die Dokumentation von Bun ordnet tsc --noEmit dem Befehl bun check zu und tsc -b dem Befehl bun check -b. Führen Sie zuerst bun upgrade aus und messen Sie dann beide Befehle in Ihrem eigenen Repository. Hardware, Thread-Zahl und Aufbau des Projekts beeinflussen das Ergebnis.

Prüfen Sie fünf Dinge, bevor Sie Ihre CI ändern:

  • Behalten Sie tsc, wenn Sie Typen veröffentlichen. bun check schreibt nie .d.ts-Dateien, daher brauchen Autoren von Bibliotheken für diesen Schritt weiterhin tsc.
  • Suchen Sie nach blockierten Optionen. Die Prüfung bricht bei älteren Einstellungen ab, darunter moduleResolution: node10, baseUrl, target: es5 und outFile.
  • Yarn PnP wird nicht unterstützt. Setzen Sie nodeLinker: node-modules, wenn Sie Yarn nutzen.
  • Achten Sie auf ein Skript namens check. Wenn package.json ein Skript check definiert, führt bun check stattdessen dieses Skript aus. Nutzen Sie in diesem Fall bun --check.
  • Legen Sie die Threads auf geteilten Runnern fest. Die Dokumentation empfiehlt --threads 4 auf geteilten CI-Maschinen.

Ihr Editor kann trotzdem zu anderen Ergebnissen kommen als bun check, weil er sein eigenes TypeScript ausführt. Die Dokumentation empfiehlt, die passende Version mit bun add -d typescript@$(bun -p process.versions.typescript) zu installieren.

TypeScript-Werkzeuge wandern weiter zu nativem Code. Microsoft hat den Typprüfer nach Go portiert, Bun hat diese Portierung portiert, und tsrs portiert sie noch einmal nach Rust. Im vergangenen Monat hat tsgolint außerdem typbewusste Lint-Regeln nach Go gebracht. Teams, die bei jedem Commit Typen prüfen, haben jetzt mehrere schnelle Prüfer, die sie auf ihrem eigenen Code gegeneinander messen können.

Quellen

  1. Bun v1.4.3 - Bun Blog
  2. tsrs: Rust port of the TypeScript 7 type checker - GitHub
  3. Type checking - Bun Docs

Ähnliche Artikel