Vite 8 has shipped bundling stable Rolldown 1.0.0, the Rust-based bundler from the VoidZero team, and it ends one of the quiet contradictions at the heart of modern web tooling: Vite used to run esbuild in development and Rollup in production, two different engines with two different behaviors. Rolldown collapses that into one Rust engine used everywhere. Our take is that the headline is not raw speed, welcome as it is, but consistency: what you test in dev is finally what you ship, built by the same code path.

  • Rolldown 1.0 is a Rust bundler with a Rollup-compatible plugin API, built on the Oxc JavaScript toolchain.
  • Vite 8 uses it to unify dev and production bundling, retiring the esbuild-plus-Rollup split that caused subtle behavior gaps.
  • The move mirrors an industry-wide port of JS tooling to Rust and Go, chasing build speeds interpreters cannot reach.
  • Meta-frameworks are already adopting it: recent SvelteKit releases require Vite 8 with Rolldown.
Vite before and after RolldownBefore, Vite used esbuild for development and Rollup for production, two engines. After, Vite 8 uses a single Rolldown engine for both, built on the Oxc toolchain in Rust.TWO ENGINES INTO ONEVite 7 and earlieresbuild (dev)Rollup (prod)two code paths, subtle gapsVite 8Rolldown 1.0Rust, built on Oxcone engine, dev and prodgenztech.blog
Fig 1 Rolldown removes the dev-versus-prod engine split that has quietly bitten Vite users for years.

What is Rolldown, and who builds it?

Rolldown is a bundler written in Rust, developed by VoidZero, the company formed around Vite creator Evan You to build a unified, high-performance JavaScript toolchain. It sits on top of Oxc, the Oxidation Compiler, which provides the Rust-native parser, resolver, and transformer the bundler needs. The design goal was explicit from the start: be a drop-in for Rollup by keeping its plugin API, so the enormous Rollup plugin ecosystem keeps working, while running at speeds a JavaScript-based bundler cannot match. Rolldown 1.0.0 is the first release the team considers production-stable, and Vite 8 is the vehicle that puts it in front of millions of projects.

RelatedDeno 2.7 Lands Temporal, Windows ARM, and Deploy GA

Why did unifying dev and production matter so much?

Because the old split was a correctness problem hiding inside a performance win. esbuild made Vite's dev server feel instant, and Rollup produced well-optimized production bundles, but they are different tools with different edge cases. Occasionally something worked in development and broke in the production build, or tree-shaking differed, and developers lost hours to bugs that only appeared after deploy. Running Rolldown for both means a single, consistent set of semantics. You are no longer testing against one bundler and shipping through another, which removes an entire category of "works on my machine" failures.

How much faster is it, really?

Fast enough that build time stops being the bottleneck on large apps, which is the point of the Rust rewrite trend. The honest framing is that raw numbers vary by project, so the durable claim is architectural: a native, parallelized bundler removes the JavaScript interpreter from the hot path, and on big codebases that is the difference between a coffee-break build and a background one. Rolldown is part of the same wave that produced the native TypeScript compiler port and Rust-based linters; the ecosystem has collectively decided that the tooling layer belongs in a systems language even when the app it builds is JavaScript.

TraitRolldown 1.0Rollupesbuildwebpack
LanguageRustJavaScriptGoJavaScript
Rollup plugin APICompatibleNativeNoNo
Used for dev + prodYesProdDevBoth
In Vite 8 by defaultYesLegacyTransformsNo

What breaks when you upgrade?

Any bundler swap touches edge behavior, so the migration is not always free. Rolldown targets Rollup compatibility, but plugins that depend on undocumented Rollup internals, exotic output-format assumptions, or timing quirks can surface differences. The Vite 8 upgrade also arrives alongside stricter defaults in downstream frameworks; recent SvelteKit releases, for example, require Vite 8 and bring their own breaking changes to form typing and app configuration. The practical advice is to upgrade behind a feature branch, run the full production build, and diff the output before trusting it in CI.

RelatedNode.js 26 Ships Temporal by Default on V8 14.6

What to watch
  • Plugin ecosystem. How many popular Rollup plugins pass unchanged versus need Rolldown-specific fixes.
  • Framework defaults. How quickly Nuxt, SvelteKit, and Astro standardize on Vite 8 with Rolldown.
  • Output parity. Whether real projects report identical production bundles after the switch.

Our take

The speed will get the headlines, but the consistency is the durable win. A generation of Vite users has quietly absorbed the risk of one engine in dev and another in prod, and most never realized the bugs they chased lived in that gap. Rolldown closes it, keeps the Rollup plugin world intact, and does it in Rust so build time stops scaling against you. The broader signal is that the JavaScript tooling layer is finishing its migration to native languages, and Vite, the tool most new projects reach for, is now built on that foundation by default. If your project is on Vite 7, this is the upgrade worth planning; just do it with a build diff in hand, not on faith.

Primary sources

Original analysis by GenZTech. Reporting informed by the Vite team.