React, Meta's open-source library for building user interfaces, has merged a Rust port of the React Compiler into its main repository, a move aimed at faster builds and tighter integration with the wider Rust-based JavaScript toolchain.

The React Compiler, formerly known as React Forget, automatically memoizes components and hooks so developers no longer need to reach for useMemo and useCallback by hand. The pull request rewrites that compiler from TypeScript to Rust, and the team describes it in the PR itself as "an experimental, work-in-progress port."

The headline figures relate to performance. As a drop-in Babel plugin the Rust version runs around 3x faster than the TypeScript original, while the isolated transformation logic reaches up to 10x in some cases, with serialization overhead pulling the real-world number down. According to the Rust Bytes newsletter, all 1,725 test fixtures pass and intermediate states match the TypeScript version almost byte for byte, achieved by rebuilding the internals with arena allocation and index-based data structures.

The clearest gains show up when the compiler stops being a plugin. Because React Compiler previously ran as a Babel transform, bundlers paid that overhead on every build; linking the Rust version directly into Turbopack, Vercel's Rust bundler, removes it. Vercel engineer Andrew Imm reported that the change delivered over 40% faster compilation when tested on v0, the company's own large-scale Next.js app, noting that the earlier SWC plugin path had suffered from a long WebAssembly cold start. The official Next.js account put the range at 20 to 50% faster route compilation across its test apps, with experimental support arriving in Next.js 16.3.

The port leaned heavily on large language models for the mechanical work, with humans retained for architecture and review, and that has driven much of the commentary. On Hacker News one reader welcomed the shift to compiled languages but warned that "paying off the cognitive debt is going to be brutal on whichever team gets to maintain it in the long run," while another compared a similar approach with Bun, and also questioned the long term impact of using LLMs for these kind of projects:

After bun this is another high-profile project that was ported to Rust by extensively using LLMs.
Very curious to see how these rewrites play out.

Is the LLM foundation solid enough to build upon and iterate on? Or does this cause projects to become unmaintainable because no person understands the implementation anymore?

A user in the same discussion cautioned that "just because something is written in Rust, doesn't mean it's good Rust," since a model can reach for a RefCell to satisfy the borrow checker and push failures to runtime.

Existing users are largely insulated from the change. The public API stays Babel-like, so upgrading is intended to be a drop-in swap that keeps configuration untouched:

Teams new to the compiler can follow React's introduction and incremental adoption guide, which explain how non-compliant code can be excluded so a codebase does not need fixing all at once.

The rewrite also slots into a broader pattern of Rust reaching further into frontend tooling. SWC has migrated to the official Rust compiler, Oxc vendors it as releasable crates, and Rspack 2.1 ships native support. Not every integration has landed cleanly; Rolldown maintainer Boshen noted the team withdrew its Rust React Compiler integration from Rolldown and Vite to "de-slopify" it first, despite early results showing up to a 2x improvement.

The Rust port lives in the React monorepo and can be tracked through the React Compiler working group.