Oxc v0.135: Rust-Port des React Compiler und ein `#[non_exhaustive]`-AST-Break

Oxc v0.135: Rust-Port des React Compiler und ein `#[non_exhaustive]`-AST-Break

lschvn

Oxc 0.135.0 und oxlint 1.69.0 wurden am 8. Juni 2026 veröffentlicht. Die Schlagzeile ist die Landung des Rust-Ports des React Compilers im oxc-Monorepo. Die zweite Schlagzeile ist ein AST-Break, den jede nachgelagerte Rust-Crate behandeln muss.

React Compiler, in Rust

Die wichtigste Änderung in 0.135 ist PR #22942, « react_compiler: Integrate the Rust port of the React Compiler ». Meta hat seit einiger Zeit an einem Rust-Port des React Compilers gearbeitet, und 0.135 ist die Version, die ihn als erstklassige Crate im oxc-Workspace ausliefert. Der Compiler analysiert React-Funktionskomponenten und -Hooks und emittiert dann memoisierten Output, der Re-Renders überspringt, wenn Props und State referenz-stabil sind.

Für Rust-basierte JS/JSX/TS-Toolchains ist das das fehlende Puzzleteil. Die vorherige Implementierung lebte als TypeScript im React-Repo, was jedes Rust-Tool, das React-Compiler-Output wollte, zwang, an Node zu delegieren oder eine JS-Laufzeit mitzuliefern. Mit dem Rust-Port in oxc können Rolldown, Vinext und künftige Bundler den Compiler direkt integrieren, was der Weg ist, den die VoidZero-Toolchain seit dem Vite+-Alpha-Launch verfolgt.

Für Anwendungsentwickler:innen ist die sichtbare Änderung inkrementell: kleinere Minified-Outputs und schnellere Builds, sobald nachgelagerte Bundler die neue Crate adoptieren. Die architektonische Bewegung ist es, die für das Ökosystem zählt.

Der #[non_exhaustive]-Breaking Change

0.135 markiert zusätzlich jeden Oxc-AST-Knoten als #[non_exhaustive] (PR #23046). Das ist ein echter Breaking Change für Rust-Downstreams, die AST-Varianten erschöpfend pattern-matchen: Rolldown, oxc-traverse, oxc-transform und alle eigenen Transformatoren, die auf oxc_parser aufsetzen, brauchen einen Patch-Release mit einem expliziten Wildcard-Arm oder einem _ =>-Zweig.

In der Praxis ist der Patch mechanisch. Die Änderung ist der erste Eingriff in die öffentliche AST-Oberfläche, seit das Projekt den AST als stabilen Vertrag behandelt, und sie signalisiert einen breiteren Härtungsschub. Wer eine Rust-Crate wartet, die von oxc abhängt, sollte mit einer kleinen PR rechnen, die bald landet.

Eine zweite, kleinere Ergänzung: zwei neue AstBuilder-Methoden, template_element_escape_raw und template_element_escape_raw_with_lone_surrogates (PR #23047), für Codegen-Pfade, die ungepaarte Surrogate in Template-Literalen behandeln müssen. Bestehende AstBuilder-Nutzer:innen brechen nicht, aber eigene Builder sollten die neuen Methoden aufnehmen.

Parser, Codegen und oxlint

Der 0.135-Parser gewinnt mehrere Strenge-Prüfungen, die bisher durchrutschten. Reservierte Type-Declaration-Namen werden nun gemeldet, ebenso Import-Type-Aliase auf nicht-externe Referenzen, abstrakte private Klassen-Felder und doppelte default-Klauseln in switch. Codegen-seitig kommt eine lange Liste an Whitespace-Fixes für den Minified-Output hinzu: dichterer Abstand bei Conditional-Type und Constructor-Type, entfernte überflüssige Leerzeichen nach else und export default und korrekter Abstand um Postfix-Operatoren ++ und --.

Oxlint 1.69 liefert Schemas für 30+ ESLint-Regeln, darunter jest/vitest/max-expects, jest/vitest/expect-expect, jest/vitest/consistent-test-it, import-max-dependencies, prefer-default-export, sort-vars, radix, prefer-const, no-warning-comments, no-unused-vars, no-shadow, no-restricted-exports, no-param-reassign, no-magic-numbers, no-inner-declarations, no-constant-condition, no-empty-function, id-match, capitalized-comments, id-length, complexity und class-methods-use-this. Der Vue-Analyzer nimmt next-tick-style, require-direct-export, no-reserved-props und require-prop-types mit. oxfmt 0.54 rundet das Release mit nicht-brevigenden Formatter-Fixes ab.

Das Release ist die natürliche Folge von der hier behandelten 0.134 und folgt dem beschleunigten Rhythmus des Projekts: ein 0.126-Release im April brachte Turbopack Magic Comments und einen Allocator-Break, ein 0.134 im Juni fügte Vue- und TypeScript-Regeln hinzu, und 0.135 liefert den Rust-Port des React Compilers. Rolldown, das Oxc nutzt, hat lazyBarrel in 1.1.0 als Default aktiviert; in der nächsten Rolldown-Minorversion ist zu erwarten, dass die React-Compiler-Integration in Produktions-Builds sichtbar wird.

Häufig gestellte Fragen

Verwandte Artikel

Weitere Berichterstattung zu ähnlichen Themen und Tags.

TypeScript 6.0 – Die Letzte Version Vor dem Go-Umschreiben
tooling

TypeScript 6.0 – Die Letzte Version Vor dem Go-Umschreiben

TypeScript 6.0 ist da, und das Microsoft-Team ist offen: Es ist eine Übergangsversion. Die eigentliche Geschichte kommt als nächstes: TypeScript 7, geschrieben in Go und bereits als Preview verfügbar, verspricht einen 10-fachen Performancegewinn.
Oxc Baut still Und Leise Das Schnellste JavaScript-Toolkit in Rust, Und Es Ist Fast Fertig
tooling

Oxc Baut still Und Leise Das Schnellste JavaScript-Toolkit in Rust, Und Es Ist Fast Fertig

Während ESLint v10 sich mit Legacy-Bereinigung herumschlug, lieferte das Oxc-Projekt einen Linter 100x schneller, einen Formatter 30x schneller als Prettier, und einen Parser, der SWC im Staub zurücklässt. Hier ist, was der JavaScript Oxidation Compiler wirklich ist.
Knip v6 Bringt oxc-Parser und 2- bis 4-fache Performance-Steigerung
tooling

Knip v6 Bringt oxc-Parser und 2- bis 4-fache Performance-Steigerung

Das beliebte Tool zum Aufspüren von ungenutztem Code in JavaScript und TypeScript hat seinen TypeScript-Backend durch den Rust-basierten oxc-Parser ersetzt, mit beeindruckenden Ergebnissen.

Kommentare

Anmelden Melden Sie sich an, um an der Diskussion teilzunehmen.

Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.