عن المشروع

Perry هو مترجم ahead-of-time للغتي TypeScript وJavaScript، مُنفَّذ بلغة Rust. يستخدم SWC للتحليل وLLVM لتوليد الكود، وينتج ملفات ثنائية قابلة للتنفيذ مستقلة بدلاً من تضمين محرك JavaScript. يضع ملف README المشروع في مواجهة Node.js وBun وElectron، مع التركيز على عدم الحاجة لتثبيت وقت تشغيل، وأحجام ملفات صغيرة (برنامج hello world حوالي 330 كيلوبايت)، وبدء تشغيل فوري. تشمل الأهداف: macOS وWindows وLinux وiOS وiPadOS وvisionOS وtvOS وwatchOS وAndroid وWear OS، بالإضافة إلى إخراج الويب وWebAssembly. توفر واجهة برمجة تطبيقات مشابهة لـ SwiftUI تُترجم إلى عناصر واجهة أصلية (AppKit وUIKit وAndroid Views وWin32 وGTK4) بدلاً من WebView، ويذكر المشروع دعم أدوات الشاشة الرئيسية. يدّعي ملف README معدل نجاح يبلغ حوالي 97% في مجموعة اختبارات Node الخاصة عبر 53 وحدة node:*، مع تطبيقات لـ fs وhttp/http2 وnet/tls وcrypto وstream وchild_process وworker_threads وfetch وعناصر الويب العامة، بالإضافة إلى التوافق مع حوالي 50 حزمة npm مثل Fastify وExpress وmysql2 وpg وioredis وws وbcrypt وjsonwebtoken. كما يتم دعم JavaScript العادي. يتم توفير التزامن من خلال parallelMap وparallelFilter وspawn على خيوط نظام تشغيل حقيقية؛ يرفض المترجم الحالة المشتركة القابلة للتغيير بحيث تفشل سباقات البيانات في وقت الترجمة. تغطي المكتبة القياسية قواعد البيانات وWebSockets والحاويات وi18n وسلسلة المفاتيح والإشعارات والتحديث التلقائي وإطار عمل TUI. تُنشر أرقام الأداء من منصات قياس مفتوحة (Apple M1 Max، متوسطات لتشغيلات متكررة)، وتغطي الالتفاف الصوري، وفيبوناتشي التكراري، وخطوط JSON، وتخصيص الكائنات، وكتابة المصفوفات، مع مقارنات مع Node.js وBun وRust. يذكر ملف README صراحةً أعباء العمل التي لا يزال فيها JIT الخاص بـ V8 يتفوق، ويوفر روابط للمنصة والمنهجية لإمكانية إعادة إنتاج النتائج. يتوفر التثبيت عبر npm (@perryts/perry) وHomebrew وwinget وAPT وScoop أو سكربت تثبيت أو بناء من المصدر. الاستخدام النموذجي هو `perry init` و`perry run` و`perry compile src/main.ts -o myapp`، مع `perry doctor` للتحقق من الإعداد. القياس عن بُعد اختياري ويمكن تعطيله عبر الإعدادات أو متغيرات البيئة. تشمل المشاريع المبنية بـ Perry: Bloom Engine (محرك ألعاب TypeScript أصلي)، وMango (واجهة رسومية أصلية لـ MongoDB)، وHone (محرر أكواد مدعوم بالذكاء الاصطناعي)، وdB Meter (مقياس مستوى الصوت). المشروع مرخّص بموجب MIT ويُطوَّر علنًا مع مجتمع Discord ومتتبع مشكلات عام.