После двух лет разработки Rolldown добрался до отметки 1.0 stable. Это нативный JavaScript-бандлер, написанный на Rust, который одновременно умеет в скорость уровня esbuild и совместимость с экосистемой Rollup-плагинов.
Что такое Rolldown и зачем он нужен
Изначально Rolldown создавался, чтобы избавить Vite от двухбандлерной архитектуры: esbuild для dev-режима и Rollup для продакшн-сборки. Два пайплайна, два плагин-апи, слой клея между ними — не самая элегантная история. Rolldown объединил лучшее из обоих миров и добавил кое-что своё.
С Vite 8 (стабильный — март 2026) Rolldown стал дефолтным бандлером для всех пользователей фреймворка.
Хронология
- Апрель 2024 — первый публичный релиз 0.10.1
- Декабрь 2024 — бета 1.0.0-beta.1
- Май 2025 — пакет
rolldown-viteкак технический превью - Декабрь 2025 — Vite 8 beta с Rolldown по умолчанию
- Январь 2026 — RC, фиксация API
- Март 2026 — Vite 8 stable
- Май 2026 — Rolldown 1.0 stable 🦆
Что гарантирует версия 1.0
Роллдаун придерживается semver, и с выходом 1.0 публичный API заморожен:
- Имена опций, типы и сигнатуры хуков плагинов остаются обратно совместимыми
- Никаких запланированных breaking changes в публичном API
- Исключение — фичи, помеченные как
experimental
Поведение вывода (DCE, чанкинг, инлайнинг) может улучшаться, но рантайм-поведение сборок не меняется. Все изменения фиксируются в release notes.
Скорость
Rolldown в 10–30 раз быстрее Rollup (разрыв растёт с размером проекта) и сопоставим с esbuild. Под капотом — Rust и Oxc для парсинга и минификации.
Реальные кейсы:
- Ramp сократил время сборки на 57%
- Mercedes-Benz.io — на 38%
- Beehiiv — на 64%
Совместимость с Rollup-плагинами
Большинство Vite-плагинов работают из коробки на Vite 8. Для минимизации накладных расходов в plugin API есть:
- Hook filters — плагины, объявляющие фильтр по
id,codeилиmoduleType, пропускают Rust→JS переход, если фильтр не совпал. Для плагинов без фильтров есть обёрткаwithFilterна стороне потребителя. - Built-in plugins на Rust —
replacePluginиesmExternalRequirePluginкак замены популярных npm-зависимостей.
Дополнительные фичи бандлера
- Меньше бандл по умолчанию: агрессивный DCE с поддержкой
@__PURE__,@__NO_SIDE_EFFECTS__,sideEffects; инлайнинг констант и TypeScriptconst enum; DCE-only минификация без переименования идентификаторов. - Гранулярный code splitting: webpack-style chunk rules — та самая фича, которая дала Framer сокращение чанков на 67%.
Как использовать
Standalone:
npm install -D rolldown
import { defineConfig } from 'rolldown'
export default defineConfig({
input: 'src/main.ts',
output: { dir: 'dist' },
})
Через Vite 8 — Rolldown уже там по умолчанию. Специфичные опции передаются через build.rolldownOptions в vite.config.ts:
// vite.config.ts
import { defineConfig } from 'vite'
export default defineConfig({
build: {
rolldownOptions: {
output: {
codeSplitting: {
groups: [{ name: 'vendor' /* ... */ }],
},
},
},
},
})
Обновление с последнего RC до 1.0 не требует никаких изменений в коде.

