Rolldown 1.0 رسماً پایدار شد: باندلر Rust-based برای Vite
خلاصهٔ کاملتر
Rolldown یه باندلر جاوااسکریپت نوشتهشده با Rust هست که بالاخره به نسخه ۱.۰ پایدار رسیده. این پروژه که از آوریل ۲۰۲۴ شروع شد، حالا موتور اصلی Vite 8 هم محسوب میشه و هر کسی که از Vite 8 استفاده میکنه، عملاً داره از Rolldown بهره میبره.
یکی از مهمترین انگیزههای ساخت Rolldown اینه که Vite قبلاً از دو باندلر جداگانه استفاده میکرد — esbuild برای سرعت در dev و Rollup برای build نهایی — که این یعنی دو pipeline تبدیل جداگانه، دو سیستم پلاگین، و یه لایه کد چسب که همه چیز رو پیچیده میکرد. Rolldown این مشکل رو حل کرده و بهترینهای هر دو دنیا رو یکجا جمع کرده.
از نظر سرعت، Rolldown بین ۱۰ تا ۳۰ برابر سریعتر از Rollup عمل میکنه و هر چقدر پروژه بزرگتر باشه، این شکاف بیشتر میشه. سرعتش با esbuild برابری میکنه. نتایج واقعی از شرکتهای مختلف نشوندهندهست:
- Ramp زمان build رو ۵۷٪ کاهش داد
- Mercedes-Benz.io تا ۳۸٪ بهبود داشت
- Beehiiv ۶۴٪ سریعتر build میکنه
از طرف سازگاری با پلاگینها، Rolldown یه API کاملاً سازگار با Rollup داره. یعنی اکثر پلاگینهای Vite و Rollup بدون هیچ تغییری روی Vite 8 کار میکنن. علاوه بر این، یه قابلیت جالب به اسم hook filters داره که پلاگینهای جاوااسکریپتی رو از مسیر اصلی hot path خارج میکنه — وقتی فیلتر با فایل مطابقت نداشته باشه، اصلاً از Rust به JS نمیره و build کند نمیشه.
برای کسایی که میخوان Rolldown رو مستقیم و بدون Vite استفاده کنن، میتونن با rolldown.config.js پیکربندی کنن:
import { defineConfig } from 'rolldown'
export default defineConfig({
input: 'src/index.js',
output: { dir: 'dist' }
})از نظر ویژگیهای اضافه، Rolldown چیزایی داره که نه esbuild و نه Rollup بهتنهایی دارن: حذف کد مرده (DCE) با پشتیبانی از @__PURE__ و @__NO_SIDE_EFFECTS__، inlining هوشمند ثابتها و TypeScript const enum، و کنترل دقیقتر روی code splitting با قوانین webpack-style که Framer باهاش ۶۷٪ حجم chunkهاش رو کم کرد.
نکات کلیدی:
- Rolldown 1.0 پایداره و API اون با سمنتیک ورژنینگ قفل شده — بدون breaking change برنامهریزیشده
- موتور اصلی Vite 8 هست و ارتقا از RC به 1.0 نیاز به تغییر کد نداره
- سرعت esbuild + سازگاری پلاگین Rollup، همه در یه ابزار
- Hook filters باعث میشه اضافه کردن پلاگینها build رو کند نکنه
- شرکتهای واقعی از Framer تا Mercedes-Benz.io ازش در پروداکشن استفاده میکنن




