Today we are thrilled to announce the Release Candidate for Rolldown 1.0.
TL;DR: Rolldown is a JavaScript/TypeScript bundler written in Rust. It is 10-30x faster than Rollup while maintaining compatibility with Rollup's plugin API. This RC marks API stability. No breaking changes are planned before 1.0. We encourage you to test it on your projects and report any issues.
Using Vite?
Try Rolldown today with the Vite 8 beta, which uses Rolldown as the default bundler.
What is Rolldown?
Rolldown is a high-performance JavaScript bundler designed to serve as the future bundler for Vite. It combines the best of both worlds: the speed of esbuild and the ecosystem compatibility of Rollup. It also goes beyond both with features like output.codeSplitting, which provides webpack-like granular chunking control.
Key Features
- 10-30x faster than Rollup: Native Rust performance with parallel processing, plus a WASM build for portability
- Rollup-compatible plugin API: Existing Rollup plugins work out of the box
- Built-in transforms: TypeScript, JSX, and syntax lowering powered by Oxc
- Native CJS/ESM interop: No
@rollup/plugin-commonjsneeded - Built-in Node.js module resolution: No
@rollup/plugin-node-resolveneeded - Granular code splitting: Webpack-like chunking control via
output.codeSplitting, unavailable in Rollup
See the full list in Notable Features.
Try It Out
Getting started with Rolldown takes seconds:
$ npm install -D rolldown$ pnpm add -D rolldown$ yarn add -D rolldown$ bun add -D rolldownCreate a config file:
import { defineConfig } from 'rolldown'
export default defineConfig({
input: 'src/main.js',
output: {
file: 'dist/bundle.js',
},
})Run the build:
$ npx rolldown -c$ pnpm rolldown -c$ yarn rolldown -c$ bunx rolldown -cWhat "RC" Means
This Release Candidate signals "API stability". We do not plan any breaking changes to Rolldown's public API before the 1.0 stable release.
A note on experimental features: Some features are still marked as experimental. For example:
Experimental features are clearly documented and may see breaking changes even after 1.0. We recommend testing experimental features thoroughly before using them in production.
What We've Been Working On
Since beta.1, we have landed over 3,400 commits: 749 features, 682 bug fixes, 109 perf optimizations, and 166 doc updates.
Vite Integration
We ported multiple Vite internal plugins to Rust, improving performance for common use cases. We have been testing it in rolldown-vite and the successor Vite 8 beta, battle-testing stability along the way.
Performance
109 performance commits including SIMD JSON escaping, parallel chunk generation, optimized symbol renaming, and faster sourcemap processing. Beyond Rolldown itself, Oxc, which powers our transforms and resolver, also got faster.
Better Chunking
We improved the chunking algorithm to produce fewer chunks. Dynamic imports that reference already-loaded modules are now inlined, and small wrapper chunks are merged with their target chunks when possible.
Compatibility
We continue to expand Rollup and esbuild compatibility. Rolldown now passes 900+ Rollup tests and 670+ esbuild tests. Examples of newly added Rollup options:
output.dynamicImportInCjs(control how dynamic imports are rendered in CJS output)watch.onInvalidate(hook for when a watched file triggers a rebuild)output.minifyInternalExports(minify internal export names for smaller bundles)
We also added support for Node.js module.exports ESM export, aligning with Node.js's new behavior with require(ESM).
API Stabilization
We promoted APIs from experimental and aligned defaults. For example:
output.strictExecutionOrder(moved fromexperimental)output.codeSplitting(renamed fromoutput.advancedChunks)tsconfigauto-discovery enabled by defaultpreserveEntrySignaturesdefaults to'exports-only'- Plugin timing diagnostics via
checks.pluginTimings
Developer Experience
Better errors with documentation links, custom panic hooks for crash reporting, and new diagnostics aligned with Rollup like CIRCULAR_REEXPORT and CANNOT_CALL_NAMESPACE.
Documentation
We filled in the missing docs:
- Dedicated pages for all options and functions and types in the API reference
- Plugin API based on Rollup's documentation with Rolldown specific additions
- CLI reference
Roadmap to 1.0 and Vite 8
Our path forward:
- RC period: Gather community feedback, fix critical bugs, and ensure API stability. We aim to keep breaking changes to zero.
- Vite 8: Ships with Rolldown as the default bundler, replacing both esbuild and Rollup in the build pipeline.
- Rolldown 1.0: Stable release once the RC has proven reliable in production use cases.
The integration into Vite will unify the build pipeline, eliminating the current two-bundler architecture and providing consistent behavior between development and production. Vite 8 will likely ship before Rolldown 1.0, as some features targeted for 1.0 are not required for the Vite integration.
Acknowledgements
Rolldown 1.0 RC represents the collective effort of over 150 contributors. Thank you to everyone who has contributed code, reported issues, or helped spread the word.
We also owe a great debt to the projects that inspired Rolldown:
Join the Community
- Discord - Chat with the team and other users
- GitHub - Star the repo, report issues, contribute
- Contributing Guide - Get started contributing
Give It a Try
Rolldown is ready for real-world testing. Try it on your projects and let us know how it goes. If you encounter issues, please open an issue on GitHub. Your feedback during this RC period directly shapes the 1.0 release.
We can't wait to see what you build with Rolldown.



