برمجياتقراءة دقيقتين

Meta تنقل React Compiler بالكامل من TypeScript إلى Rust وتسرّع الترجمة في Next.js 16.4 بأكثر من 40%

المغزى

مصدر السرعة ليس اللغة وحدها بل طريقة إدارة الذاكرة والاندماج داخل أداة البناء، والطبقة التي تمر على كل ملف في أدوات الواجهات تنتقل تدريجيًا إلى Rust.

نقلت Meta أداة React Compiler بالكامل من TypeScript إلى Rust. ودُمج طلب النقل (PR رقم 36173) في 9 يونيو 2026، بعد أن اجتاز جميع حالات الاختبار البالغ عددها 1,725. والأداة الجديدة هي التي تُشحن مع Next.js 16.4.

ووظيفة React Compiler إضافة الـ memoization تلقائيًا، أي أنه يقرر بنفسه أي الحسابات داخل المكوّن لا حاجة لإعادتها في كل render، فلا يكتبها المطور يدويًا. وكان مكتوبًا بـ TypeScript ويعمل كإضافة (plugin) لـ Babel.

وبحسب الأرقام المعلنة، أصبحت النسخة الجديدة أسرع 3 مرات عند تشغيلها كإضافة لـ Babel، ويقترب الفرق من 10 مرات عند قياس منطق التحويل وحده. وحين دُمجت مباشرة داخل Turbopack، أداة البناء في Next.js، صار زمن الترجمة من أولها إلى آخرها أسرع بأكثر من 40%.

ولا يعود هذا الفرق إلى أن Rust أسرع فحسب، بل إلى سببين محددين. الأول أن النقل اعتمد على arena-based data structures بدل شجرة من الكائنات المنفصلة، أي أن الذاكرة تُحجز في كتلة واحدة وتُحرر مرة واحدة، بدل أن يلاحق الـ garbage collector ملايين الكائنات الصغيرة. والثاني أن الأداة صارت مرتبطة (linked) داخل أداة البناء نفسها، فلا يوجد تبادل للبيانات بين عمليتين منفصلتين.

وجرى النقل مرحلة بمرحلة (pass-by-pass)، بالخوارزميات نفسها في لغة أخرى، وهو ما يفسر اجتياز كل حالات الاختبار.

ويندرج ذلك في اتجاه واضح في أدوات الواجهات الأمامية منذ سنوات: الطبقة التي تمر على كل ملف تنتقل إلى Rust، بينما تبقى الطبقة التي يكتب فيها المطور إعداداته بـ JavaScript. وبالنسبة للفرق التي تعمل على مشاريع كبيرة، يُترجم ذلك إلى دقائق أقل من الانتظار في كل يوم عمل.

المصادر

  1. تقرير InfoQ عن نقل React Compiler إلى Rust
  2. طلب الدمج الأصلي PR #36173

من عدد الأحد 19 صفر - 2 أغسطس

أخبار ذات صلة

أخبار الأحد 19 صفر - 2 أغسطس