Buns Rust-Rewrite ist mehr als Rust gegen Zig
Bun machte aus einer Million-Zeilen-Migration einen öffentlichen Test für KI-gestützte Open-Source-Entwicklung. Die nützliche Lehre liegt in Tests, CI und menschlicher Verantwortung.
Buns Wechsel von Zig zu Rust wäre auch ohne KI eine große Open-Source-Geschichte gewesen. Bun ist ein ernstzunehmendes JavaScript- und TypeScript-Werkzeug: Runtime, Package Manager, Bundler, Test Runner und Node-kompatible APIs.

Der Streit wurde so groß, weil die Migration anders ablief. Jarred Sumner schrieb am 8. Juli, Bun sei im Dezember 2025 von Anthropic übernommen worden, das Team arbeite dort, und eine Vorabversion von Claude Fable 5 sei für einen großen Teil des Ports nach Rust genutzt worden. Einen Tag später antwortete Andrew Kelley, der Schöpfer von Zig, mit einem scharfen Text. Zwei Hacker-News-Threads machten daraus eine Debatte über Sprachen, KI-Agenten, Tests, Geld und Open-Source-Beziehungen.
Die einfache Lesart lautet: Rust hat Zig geschlagen. Sie ist zu klein. Die nützlichere Frage lautet: Kann ein großes Infrastrukturprojekt heute eine Migration wagen, die früher fast tabu war, wenn es starke Tests, Compiler-Feedback, CI, menschliche Review und genügend Agenten-Kapazität hat?
Was sich geändert hat
Bun begann als Zig-Projekt. Sumner schreibt ausdrücklich, dass Zig die frühe Version möglich gemacht hat. Später wuchs der Umfang: Transpiler, Minifier, Bundler, npm-kompatibler Package Manager, Jest-ähnlicher Test Runner, Modulauflösung, HTTP/WebSocket-Client und Node-APIs.
Dieser Umfang brachte Nutzen, aber auch schwierige Fehler. Der Bun-Post listet Probleme in node:zlib, node:http2, UDP, Buffer, TLS, fs.watch, CSS-Parser und JavaScriptCore auf. Viele davon sind Speicherfehler: use-after-free, double-free, leaks und vergessene Freigaben in Fehlerpfaden.
Das Argument ist nicht, dass Zig schlecht ist. Es ist enger: Bun liegt an einer komplizierten Grenze aus JavaScriptCore-GC, nativen Ressourcen, FFI, asynchronen Callbacks und manueller Speicherverwaltung. Dort kann es sinnvoll sein, mehr Ownership-Regeln dem Compiler zu überlassen.
Rust macht FFI nicht automatisch sicher. Es entfernt unsafe nicht. Es beweist nicht, dass Tests alles abdecken. Aber es kann einen Teil der Lifetime-Fehler in Compilerarbeit verwandeln.
Die Größenordnung war ungewöhnlich
Der GitHub-PR oven-sh/bun#30412 macht die Sache konkret: Tausende Commits, mehr als zweitausend geänderte Dateien und ungefähr eine Million hinzugefügte Zeilen. GitHub zeigt Rust derzeit als Hauptsprache des Repositories.
Das ist kein Wochenend-Refactor. Es ist eine Codebase-Migration.
Es war auch kein normaler manueller Rewrite. Sumner beschreibt Agenten-Workflows, kleine Testläufe, Compilerfehler, fehlschlagende Tests, adversarische Review und Korrekturen am Prozess. Simon Willison nannte den Post eine detaillierte Fallstudie in agentic engineering. Der entscheidende Punkt: Buns TypeScript-Test-Suite konnte als Conformance Suite dienen, unabhängig von der Implementierungssprache.
Das ist die übertragbare Lehre. Den Agenten wurde nicht vertraut, weil sie klug waren. Sie waren nützlich, weil ein externer Maßstab existierte: kompilieren, testen, Verhalten vergleichen, wiederholen.
Was Maintainer lernen können
KI veränderte die Ökonomie des Rewrite, nicht die Verantwortung. Menschen entwarfen die Migration, lasen Ergebnisse, änderten den Prozess, entschieden über den Merge und tragen die Folgen. Agenten machten aus Compilerfehlern und Tests eine parallele Arbeitswarteschlange.
Das macht Million-Zeilen-Rewrites nicht automatisch sicher. Es macht sie für wenige gut vorbereitete Projekte denkbar.
Kopieren sollte man nicht den riesigen Diff. Kopieren sollte man die Vorbereitung: Verhaltenstests, schnelle CI, Performance-Baselines, Fuzzing, kleine Probemigrationen, Review des Code-Erzeugungsprozesses und klare menschliche Verantwortung.
Die falsche Lektion wäre: Agenten können alles neu schreiben. Ohne starke Tests entsteht nur schneller ein größeres Durcheinander.
Die Grenzen bleiben
Rust reduziert manche Fehlerklassen, aber Bun behält schwierige Grenzen: JavaScriptCore, native Bibliotheken, FFI, unsafe und callbacklastiger Runtime-Code. Das Issue um PathString::slice und Miri zeigt, dass auch ein Rust-Port Undefined-Behavior-Checks und CI-Disziplin braucht.
Tests haben ebenfalls Grenzen. Eine große Conformance Suite ist wertvoll, aber sie beweist nicht jeden Edge Case einer Node-kompatiblen Runtime.
Nutzer sollten den Release-Kanal prüfen. Der Rust-Port wird als in Claude Code ab v2.1.181 verwendet beschrieben, doch das heißt nicht, dass jeder stabile Bun-Nutzer bereits auf dieser Implementierung läuft.
Die Open-Source-Lehre
Bun beweist nicht, dass Rust Zig besiegt hat. Es beweist auch nicht, dass KI jedes Projekt sicher umschreiben kann. Es zeigt eine neue Kategorie von Open-Source-Ereignis: eine öffentliche, agentengestützte Infrastruktur-Migration mit Tests und echten Nutzern.
Große Rewrites bleiben gefährlich. Aber ihr Kostenmodell ändert sich. Projekte mit Conformance Suites, disziplinierter CI und menschlicher Review können Migrationen versuchen, die früher sofort verworfen worden wären. Ohne diese Grundlagen entsteht nur schneller Chaos.
Comments
Sign in to comment.
No comments yet.