أصدرت Rspack، وهي حزمة جافا سكريبت المستندة إلى Rust من ByteDance، Rspack 2.0، مع مزيج من مكاسب الأداء، والتبعيات الأصغر حجمًا، والتحول نحو مخرجات وحدة ECMAScript الحديثة.
يقدم Rspack 2.0 العديد من التغييرات، بما في ذلك نواة ESM النقية، ودعم مكونات React Server التجريبية، والتحليل الثابت المحسن للحزم الأصغر، والتكوين المبسط. كما يمثل أيضًا فترة من النمو السريع للمشروع، حيث ارتفعت تنزيلات npm الأسبوعية من 100000 حول الإصدار 1.0 إلى أكثر من 5 ملايين.
أحد الموضوعات الرئيسية في Rspack 2.0 هو الأداء. وفقًا لمعايير الفريق، فإن أداء البناء الإجمالي أسرع بحوالي 10% من Rspack 1.7 وأسرع بنسبة 100% من 1.0. في مشروع React المكون من 10000 مكون، انخفض الإنتاج الذي تم إنشاؤه باستخدام ذاكرة التخزين المؤقت المستمرة من 5.6 ثانية في 1.0 إلى 1.4 ثانية في 2.0، بينما انخفض استبدال الوحدة الساخنة إلى 118 مللي ثانية. تعمل إعادة استخدام ذاكرة التخزين المؤقت لمصغر SWC على تحسين أداء البناء بنسبة 50% تقريبًا عند وصول ذاكرة التخزين المؤقت، وينخفض استخدام الذاكرة بأكثر من 20% عند تمكين ذاكرة التخزين المؤقت.
ومن الجدير بالملاحظة أيضًا الانخفاض الحاد في التبعيات. ال @rspack/dev-server انتقلت الحزمة من 192 تبعية إلى 1، وتقلص حجم تثبيتها من 15 ميجابايت إلى 1.4 ميجابايت. لفتت هذه التفاصيل الانتباه إلى Hacker News، حيث كتب أحد المعلقين أن “أرقام تقليل التبعية هي الجزء الذي برز بالنسبة لي أكثر من أرقام الأداء”، واصفًا إياها بأنها “تحول في الفلسفة، وليس مجرد معيار” و”موقف سلسلة التوريد أقوى مما يتخذه معظم القائمين على حزم البيانات في هذه المرحلة”.
على واجهة الوحدة، @rspack/core تم نشره الآن كحزمة ESM خالصة، مع إزالة إصدار CommonJS الخاص به. لأن Node.js v20.19 والإصدارات الأحدث يمكنها تحميل ESM عبر require()يقول الفريق أن معظم المشاريع التي تستخدم JavaScript API لا تحتاج إلى تغييرات في التعليمات البرمجية. يضيف Rspack 2.0 أيضًا دعمًا لـ import.meta ومقترح تأجيل الاستيراد للمرحلة الثالثة، إلى جانب إنشاءات مكتبة ESM المحسنة. تم تحسين اهتزاز الأشجار أيضًا، مع تمكين تحليل الوظائف الخالي من التأثيرات الجانبية الآن بشكل افتراضي في الإنتاج، والذي يمكن اكتشافه من خلال التعليقات التوضيحية.
يجب على المطورين الذين يقومون بالترقية من 1.x ملاحظة أن Rspack 2.0 يتطلب Node.js 20.19+ أو 22.12+، مع إسقاط Node.js 18، وذلك module.unsafeCache تمت إزالته. يوصي الفريق بالصدمة @rspack/core, @rspack/cli, @rspack/dev-server و @rspack/plugin-react-refresh معًا إلى ^2.0.0. التفاصيل الكاملة موجودة في دليل الترحيل ومناقشة التغييرات العاجلة. سيستمر السطر 1.x في تلقي الإصلاحات الهامة لفترة من الوقت، على الرغم من أن العمل الجديد يركز على 2.x.
على موقع Reddit، لاحظ أحد مستخدمي r/rust أن المعايير تقارن فقط بإصدارات Rspack الأقدم، مضيفًا أنه باعتباره شخصًا “في حزمة القوائم الكاملة” فإنه لن يفكر في التبديل إلا إذا كان يقدم المزيد من الأداء والنظام البيئي. آخر على r/javascript يعتبره بديلاً قويًا لحزمة الويب:
أصبح Rspack بديلاً قويًا حقًا لـ Webpack. من الرائع أن نرى 2.0 يخرج مع كل هذه التحسينات.
لا يزال Rspack يتنافس مع webpack وVite’s Rolldown وTurbopack، ويعتمد على توافق تكوين حزمة الويب بنسبة 95% تقريبًا كميزة ترحيل لا يمكن للمنافسين غير المتوافقين مع التكوين مطابقتها.
Rspack عبارة عن أداة تجميع مفتوحة المصدر ومبنية على Rust وتتم صيانتها بواسطة ByteDance ويتم إصدارها بموجب ترخيص MIT، ويتم وضعها كبديل مباشر لحزمة الويب مع دعم TypeScript وJSX وCSS والنظام البيئي الأوسع لمكونات حزمة الويب الإضافية.
