Rolldown: A Rust Bundler That Aims to Replace Rollup Inside Vite
Fast Rust bundler for JavaScript/TypeScript with Rollup-compatible API.
At a glance
- What is it?
- Rolldown is a Rust-based JavaScript and TypeScript bundler with a Rollup-compatible API. It targets Vite's future bundling needs and promises faster builds, but early adopters should verify plugin compatibility and ecosystem maturity.
- Who is it for?
- Adopt Rolldown if you are building a new Vite-based project or a tool that needs faster bundling and can tolerate a young ecosystem. Do not use it for production builds that depend on niche Rollup plugins or require long-term stability without testing.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Rolldown Solves and Who It Is For
Rolldown addresses a specific pain: JavaScript bundling is slow when done in JavaScript. Rollup, the popular bundler, is written in JavaScript and can become a bottleneck for large projects. Rolldown is written in Rust, which allows it to process code faster. The project's stated goal is to become the future bundler used in Vite, the build tool that already uses Rollup under the hood. So the primary audience is Vite users and maintainers who want faster builds without changing their build configuration. It is also for developers who use Rollup's API and want a drop-in replacement that is faster. The README says Rolldown provides Rollup-compatible APIs and plugin interface, but it will be more similar to esbuild in scope. That means it aims to cover the same use cases as esbuild, which is known for speed, while keeping Rollup's familiar interface. If you are a library author or an application developer who has hit the speed limits of Rollup, Rolldown is designed for you. But if you are happy with esbuild's speed and do not need Rollup's plugin ecosystem, you may not need Rolldown yet.
How Rolldown Works: Rust Core with Node-API Bindings
Rolldown's architecture is visible from its dependencies. The README credits napi-rs for Node.js add-ons in Rust via Node-API, and oxc for the underlying parser, resolver, and sourcemap support. This means Rolldown compiles Rust code into native Node.js bindings. The npm packages for different platforms, such as @rolldown/binding-darwin-arm64 and @rolldown/binding-linux-x64-gnu, confirm that the core is a native binary. The bundling process likely follows a pipeline: parse source files with oxc's parser, resolve imports with oxc's resolver, apply transformations and plugin hooks, then generate output. The plugin interface is designed to be compatible with Rollup's, so plugins can hook into events like resolveId, load, transform, and generateBundle. Because the core is in Rust, the overhead of JavaScript is reduced, but the plugins still run in JavaScript, which means plugin-heavy builds may not see the same speed gains as pure bundling. The documentation at rolldown.rs, according to the README, provides more details on getting started, but the repository layout suggests a monorepo with separate packages for bindings and the main rolldown package.
Getting Rolldown Running: Installation and Basic Usage
The README points to rolldown.rs for getting started, but it does not include explicit install commands. However, the npm packages are listed, so you can install rolldown via npm. The package name is 'rolldown' on npm, as shown by the NPM version badge. A typical installation would be: npm install rolldown. Then you can use it in a JavaScript file. The API is Rollup-compatible, so you would create a bundle and write to disk. The README does not give a code example, but based on Rollup's API, you might write: import { rolldown } from 'rolldown'; const bundle = await rolldown({ input: 'src/index.js' }); await bundle.write({ dir: 'dist' });. That is an inference, not a fact from the material. The README also mentions a StackBlitz starter, so you can try it in the browser without installing anything. For local use, you need Node.js and the appropriate native binding for your platform. The wasm32-wasi binding exists, which means you can run Rolldown in environments that do not support native binaries, though performance will be lower.
Limitations and Failure Modes
Rolldown has clear limitations. First, it is not a drop-in replacement for Rollup in every case. The README says it is 'more similar to esbuild in scope,' which suggests it may not support every Rollup feature or plugin. The plugin interface is compatible, but that does not guarantee every plugin works without modification. Some plugins rely on Rollup internals that Rolldown may not implement. Second, because the core is Rust, adding a custom plugin means crossing the JavaScript-Rust boundary, which can add overhead. The README does not say this, but it is a known trade-off for native bundlers. Third, the project is young. The latest release is v1.2.6, but the version number does not indicate maturity. The README mentions it is intended to be the future bundler for Vite, which means it is still under development. If you use Rolldown in production, you may encounter bugs or missing features. Fourth, the native bindings are platform-specific. If you deploy to a platform without a prebuilt binding, you may need to build from source, which requires a Rust toolchain. The wasm32-wasi binding is a fallback, but it will be slower. Finally, the README does not mention any migration tool from Rollup, so you may need to manually adjust your configuration.
Alternatives: Rollup and esbuild
The main alternatives are Rollup and esbuild. Rollup is the original JavaScript bundler that Rolldown is trying to replace. It is mature, has a huge plugin ecosystem, and is stable. The difference is that Rollup is written in JavaScript, so it is slower for large projects. esbuild is a Rust-based bundler that is already fast, but it has a different API and a smaller plugin ecosystem. Rolldown aims to combine esbuild's speed with Rollup's API. If you need a proven bundler with many plugins, Rollup is the safe choice. If you need speed and do not rely on Rollup plugins, esbuild is a solid option. Rolldown is the middle ground: it offers Rollup compatibility with Rust performance, but it is less mature than both. The README credits both Rollup and esbuild as inspirations, so the design is a hybrid. For a new project that does not depend on exotic plugins, Rolldown could be a good fit. For an existing large Rollup project, you should test whether all your plugins work.
Maintenance and Upgrade Cost
The maintenance and upgrade cost for Rolldown depends on how fast the project evolves. The release schedule shows a new version every week or two, with v1.2.4, v1.2.5, and v1.2.6 released over three consecutive weeks. That means frequent updates, which can be good for bug fixes but also means you need to keep up with breaking changes. The README does not mention a migration guide, but the documentation at rolldown.rs likely has one. The project is backed by VoidZero Inc., which suggests commercial support and long-term investment. The README says it is a project of VoidZero, so you can expect ongoing development. The license is MIT, which is permissive, but the code includes derived code from Rollup and esbuild, both also MIT. The THIRD-PARTY-LICENSE file lists those licenses, so you must include that file if you distribute Rolldown. The upgrade cost is mainly in testing your plugins after each update. Because the API is Rollup-compatible, most changes should be internal, but you should still monitor release notes. The wasm32-wasi binding is an option for environments without native support, but it may not be updated as frequently.
Editorial conclusion
Adopt Rolldown if you are building a new Vite-based project or a tool that needs faster bundling and can tolerate a young ecosystem. Do not use it for production builds that depend on niche Rollup plugins or require long-term stability without testing. Before adopting, verify that your current Rollup plugins work with Rolldown's plugin interface, check the latest release notes for breaking changes, and run your own benchmark against your real codebase, not just the README examples. Rolldown is MIT-licensed, so licensing is permissive, but you must review the THIRD-PARTY-LICENSE file for derived code from Rollup and esbuild.
Community notes