Cloudflare تنشر tsrs، مترجم TypeScript مكتوب بـ Rust أسرع حتى 8 مرات وبذاكرة أقل 70%
أعلنت Cloudflare عن tsrs، نسخة من مترجم TypeScript مكتوبة بلغة Rust. وبحسب الإعلان، فهو أسرع حتى 8 مرات من TypeScript 7.0، ويستهلك ذاكرة أقل بنحو 70%، بالعدد نفسه من خيوط فحص الأنواع. ويذكر الإعلان أيضًا إعدادًا افتراضيًا تكيّفيًا أسرع ويستهلك ذاكرة أكثر، دون رقم له.
ويصف المستودع المشروع بأنه “drop-in replacement for the TypeScript 7 compiler and language server”، أي بديل يمكن وضعه مكان المترجم وخادم اللغة دون تعديل المشروع. وترخيصه Apache-2.0، ويوضح المستودع أنه مشتق من TypeScript الذي تملك Microsoft حقوقه، وأنه غير تابع لها ولا معتمد منها. وتجربته أمر واحد: pnpm add -D tsrs ثم pnpm exec tsrs --noEmit.
والأهم في طريقة بنائه أنه ليس فرعًا منفصلًا عن اللغة. فهو يتابع الفرع الرئيسي لمستودع microsoft/TypeScript، ويبقى قرار اللغة نفسها لفريق TypeScript. بل إن جزءًا من تحسيناته انتقل إلى الأصل، ولهذا صارت TypeScript 7.1 beta أسرع حتى 2.5 مرة من 7.0 بحسب الإعلان. ويخطط المشروع لإصدار مستقر مقابل TypeScript 7.1.
وأثر ذلك يظهر في الـ CI أكثر من المحرر، لأن فحص الأنواع يتكرر مع كل push من كل عضو في الفريق. والذاكرة قد تكون أهم من السرعة على runner محدود الموارد، إذ يتوقف البناء هناك عند حد الذاكرة قبل أن يطول الوقت.
لكن المشروع ما زال تجريبيًا. يذكر المستودع أن ترتيب رسائل التشخيص يتغير بين تشغيل وآخر، وأن الخيارين --init و--showConfig غير مدعومين. كما أن أرقام الإعلان مقيسة على مشاريع Cloudflare، وقد تختلف النتيجة على مشروع آخر.