React Compiler wechselt zu Rust – und Next.js 16.3 kann ihn schon nutzen

Das React-Team hat den React Compiler in Rust neu geschrieben, und die Ergebnisse machen sich in realen Build-Zeiten bemerkbar. Der Rust-Port landete Anfang Juni im React-Monorepo (PR #36173), und Vercel integrierte ihn einige Wochen später in Turbopack. In Next.js 16.3 können Sie nun zum nativen Compiler wechseln und den alten Babel-Pfad vollständig überspringen.
Kurze Zusammenfassung für alle, die ihn noch nicht kennen: Der React Compiler (früher React Forget genannt) memoiziert automatisch Ihre Komponenten und Hooks, sodass Sie useMemo und useCallback nicht mehr manuell schreiben müssen. Seit Next.js 16.0 ist er stabil. Das Problem lag in der Art seiner Ausführung: Als Babel-Transform fügte er bei jedem Build JavaScript-Overhead hinzu, und bei großen Apps wurde das zu einem echten Flaschenhals, während Turbopacks Rust-Pipeline untätig wartete.
Was tatsächlich schneller wurde
Das Rust-Rewrite verändert die Grundrechnung. Das React-Team berichtet, dass der Port als Babel-Plugin etwa 3-mal schneller läuft und bei der isolierten Transformationslogik bis zu 10-mal. Der größere Gewinn entsteht, wenn der Compiler aufhört, überhaupt ein Plugin zu sein. Direkt in Turbopack eingebunden, maß Vercels Andrew Imm über 40 % schnellere Kompilierung bei v0, ihrer eigenen großen Next.js-App – teils weil der frühere SWC-Plugin-Pfad unter einem langsamen WebAssembly-Kaltstart litt. Die offiziellen Next.js-Zahlen liegen bei 20 bis 50 % schnellerer Route-Kompilierung in ihren Test-Apps.
Ein ehrlicher Vorbehalt: Das ist experimentell, und das React-Team hat den Port selbst als „Work in Progress“ eingestuft. Die Architektur wurde von Menschen geleitet, aber nach Angaben des Autors größtenteils von KI geschrieben. Alle Test-Fixtures des Compilers bestehen, und die Ausgabe entspricht für 99,9 % von Metas Codebase der TypeScript-Version. Aber 99,9 % sind nicht 100 %, und der Opt-in-Status hat seinen Grund.
So würden wir es einführen
Wenn wir Cloud-native-Apps für Unternehmenskunden entwickeln, ist ein Compiler- oder Bundler-Wechsel genau die Art von Änderung, die kostenlos aussieht und dann einen ganzen Sprint verschlingt. Behandeln Sie das daher als Messübung, nicht als Vertrauensübung.
Aktivieren Sie es in einem Branch, nicht in Ihrer Haupt-Build-Linie. In Next.js 16.3 sind die Flags explizit: Setzen Sie reactCompiler: true und experimental.turbopackRustReactCompiler: true. Denken Sie daran, dass dies nur den Turbopack-Pfad betrifft, nicht --webpack. Benchmarken Sie dann Ihre eigene App. Der Bereich von 20 bis 50 % ist Vercels Zahl für Vercels Apps. Ihr Gewinn hängt davon ab, wie compiler-intensiv Ihre Komponenten sind und wie kalt Ihre CI-Caches starten.
Am genauesten würden wir die Ausgabe-Parität beobachten. Ein Compiler, der leicht anders memoiziert, kann das Renderverhalten auf eine Weise verändern, die Unit-Tests übersehen. Aus unserer Arbeit mit PHP und Docker haben wir gelernt, Toolchain-Versionen in CI zu fixieren und die Build-Ausgabe zwischen altem und neuem Pfad vor dem Ausrollen zu vergleichen. Machen Sie hier dasselbe: Führen Sie Ihre vollständige End-to-End-Suite auf dem Rust-Pfad aus, vergleichen Sie die Bundle-Ausgabe, und behalten Sie den Babel-Pfad als Ein-Flag-Rollback, bis Sie ihm vertrauen.
Das größere Signal
Es gibt einen Trend zweiter Ordnung, der einen Namen verdient. Dies ist Teil einer stetigen Verlagerung von Frontend-Tools nach Rust. SWC wird jetzt auf dem offiziellen Rust-Compiler gebaut, Oxc liefert ihn als Crates, und Rspack 2.1 hat native Unterstützung hinzugefügt. Nicht jeder Versuch verlief reibungslos – der Rolldown-Maintainer hat seine Rust-React-Compiler-Integration zurückgezogen, um sie zuerst aufzuräumen. Die Transition ist also noch nicht abgeschlossen, aber die Richtung ist gesetzt. Wenn Ihr Build-Tooling ein Haufen benutzerdefinierter Webpack-Loader und dynamischer Requires ist, wird diese Schuld teurer zu tragen.
Mobile-Teams sollten das ebenfalls nicht ignorieren. In unseren nativen und React-Native-Projekten gilt dasselbe Muster: Der Compiler läuft auch dort, und vorhersehbare Build-Zeiten sind noch wichtiger, wenn Ihre CI bereits native Toolchains jongliert. Und auf der Sicherheitsseite gilt aus unseren Pentesting-Engagements eine einfache, aber reale Lektion: Jede neue Build-Abhängigkeit ist neue Supply-Chain-Angriffsfläche. Ein experimenteller, KI-unterstützter Compiler in Ihrer Pipeline verdient eine Abhängigkeitsprüfung, keinen blinden Install.
Eine Sache, die Sie heute tun können
Auch wenn Sie das Rust-Flag nie aktivieren: Wenn Sie Next.js verwenden und den React Compiler noch gar nicht nutzen, ist das der größere verpasste Gewinn. Aktivieren Sie reactCompiler in einem Branch, löschen Sie eine Reihe manueller useMemo- und useCallback-Aufrufe, und messen Sie die Auswirkungen auf Rendering und Build. Der Rust-Port macht diesen Pfad später einfach günstiger zum Adoptieren, sobald er den experimentellen Status verlässt.
Wenn das Optimieren von Build-Zeiten oder das Entwirren benutzerdefinierter Bundler-Konfigurationen vertraut klingt, sprechen Sie uns an. Wir helfen Web- und Mobile-Teams dabei, schneller zu liefern, ohne die Produktion auf ein experimentelles Flag zu verwetten.