QuickJS - محرك جافا سكريبت خفيف الوزن تم تطويره بواسطة مؤسس QEMU و FFmpeg

جافا سكريبت

عالم الرياضيات الفرنسي فابريس بيلارد، الذي أسس مشروعي QEMU و FFmpeg والذي أنشأ أيضًا أسرع صيغة لحساب رقم Pi وطور تنسيق صورة BPG.

فابريس بيلارد هو اشتهر بأنه المطور الرئيسي لـ QEMU (محاكي يحاكي العديد من بنى الأجهزة) و Tiny C Compiler (tcc) ، مترجم لغة C صغير جدًا ولكنه شامل ، تم كتابته في الأصل للفوز بـ "مسابقة كود C الدولية المبهمة".

الآن مؤخرًا شارك للجمهور النسخة الأولى من عمله الجديد وهو موجود بجافا سكريبت وهذا هو محرك جديد يسمى JavaScript QuickJS.

حول JavaScript QuickJS

محرك QuickJS JavaScript إنه مضغوط ومصمم ليتم دمجه في أنظمة أخرى. كود المشروع إنه مكتوب بلغة C ويتم توزيعه بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. يتوفر أيضًا محرك تم تجميعه في WebAssembly باستخدام Emscripten ومناسب للتشغيل في المتصفحات.

تنفيذ JavaScript يدعم مواصفات ES2019 ، بما في ذلك الوحدات النمطية والمولدات غير المتزامنة والوكلاء.

في محرك QuickJS JavaScript يتم دعم ملحقات الرياضيات الاختيارية غير القياسية لجافا سكريبت، مثل أنواع BigInt و BigFloat ، فضلاً عن التحميل الزائد للمشغل.

من خلال الأداء ، يتفوق QuickJS بشكل ملحوظ على نظائرها المتاحةعلى سبيل المثال ، في اختبار مقاعد البدلاء v8 ، يتقدم محرك XS بنسبة 35٪ ، وتضاعف DukTape أكثر من الضعف ، و JerryScript ثلاث مرات ، و MuJS سبع مرات.

بالإضافة إلى المكتبة لتضمين المحرك في التطبيق ، يقدم المشروع أيضًا مترجم qjs ، والتي يمكن استخدامها لتشغيل كود JavaScript من سطر الأوامر.

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

من السمات الرئيسية لمحرك QuickJS JavaScript تبرز النقاط التالية:

  • مدمج وسهل الدمج في مشاريع أخرى. لا يتضمن الكود سوى عدد قليل من ملفات C التي لا تتطلب تبعيات خارجية للبناء. يستغرق التطبيق المترجم البسيط حوالي 190 كيلو بايت
  • أداء عالي جدًا وأوقات بدء تشغيل سريعة. يستغرق اجتياز 56 ألف اختبار توافق ECMAScript حوالي 100 ثانية عند تشغيل سطح مكتب عادي على نواة. تستغرق تهيئة وقت التشغيل أقل من 300 ميكروثانية
  • دعم كامل تقريبًا لمواصفات ES2019 ودعم كامل لتطبيق "B" الذي يحدد المكونات للتوافق مع تطبيقات الويب القديمة
  • أكمل اجتياز جميع اختبارات ECMAScript Test Suite
  • دعم تجميع كود Javascript في ملفات قابلة للتنفيذ بدون تبعيات خارجية
  • جامع القمامة يعتمد على العد المرجعي دون إجراء تنظيف دوري ، مما يسمح بسلوك يمكن التنبؤ به ويقلل من استهلاك الذاكرة
  • مجموعة من الامتدادات للحسابات الرياضية في لغة JavaScript
  • غلاف لتنفيذ التعليمات البرمجية في وضع سطر الأوامر ، والذي يدعم تمييز التعليمات البرمجية السياقية
  • مكتبة قياسية مضغوطة على مكتبة C.

بالإضافة إلى هذا ، من ناحية أخرى ، يقوم المشروع أيضًا بتطوير ثلاث مكتبات للغة سي الأطراف ذات الصلة المشاركة في QuickJS ومناسبة للاستخدام الفردي:

  1. فريجيكب: مكتبة regex صغيرة وسريعة تتوافق مع مواصفات JavaScript ES2019
  2. ليبونيكود: مكتبة Unicode صغيرة تدعم تحويل الحالة وتطبيع Unicode وطلبات برنامج Unicode النصي واستعلامات فئة Unicode العامة وجميع خصائص Unicode الثنائية
  3. شفة: هذه أيضًا مكتبة صغيرة تنفذ عمليات الفاصلة العائمة IEEE 754 والوظائف المتعالية بالتقريب الدقيق. يتم الاحتفاظ به كمشروع منفصل.

كيف تحصل على برنامج SavaScript QuickJS؟

يمكن تنزيل الكود المصدري للتجميع من الرابط التالي. بعد التثبيت ، يتم توفير ملف Makefile لترجمة المحرك على Linux أو Mac OS / X.

في نفس الرابط يمكنك الرجوع إلى وثائق QuickJS للمزيد من المعلومات. كما يوفر معلومات معيارية توضح أداء QuickJS مع محرك Google V8 ومقارنة بينها وبين الأدوات الأخرى في نفس الفئة.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.