Jaspy هو Python VM مكتوب بالكامل من الصفر في JavaScript مع بعض الميزات الفريدة. يدعم JASPY عدة مؤشرات ترابط ، ويأتي مع تصحيح أخطاء متكاملة يقدم تصحيح الأخطاء عن بُعد ويوفر بنية مرنة على أساس المعالج. السرعة ليست صراحة الهدف الرئيسي لهذا المشروع. يهدف Jaspy إلى توضيح كيفية إجراء برمجة الويب على جانب العميل من خلال استكشاف طرق جديدة.
يأتي Jaspy مع خادم تطوير متكامل وتصحيح التفاعل!
قم أولاً بتثبيت التبعيات ، إذا لم يتم تثبيتها بالفعل:
pip3 install --user -r requirements.txt
pip3 install --user ptpython pygmentsاستنساخ المستودع وبناء المترجم المترجم:
git clone --recursive https://github.com/koehlma/jaspy.git ; cd jaspy
python3 build.py # build the interpreterقم بالتبديل إلى دليل المثال وابدأ الخادم في الوضع التفاعلي:
cd example
PYTHONPATH=../ python3 -m jaspy.cli --interactiveتفضل بزيارة http: // localhost: 8080/hello.html في متصفحك وانقر فوق تشغيل:
هناك بالفعل العديد من مقاربات Python-to-JavaScript هناك:
معظمهم أسرع من Jaspy ، لكن لا يوجد أي منهم يوفر ميزات فريدة لـ JASPY ، والتي هي المترجم المترجم القابل للاحتفال بالكامل مع دعم الخيوط ، وتصحيح الأخطاء المتكاملة والهندسة المعمارية المرنة المعتمدة.
فقط للحصول على انطباع كم هو بطيء jaspy حقا!
| بيستون/ثانية | |
|---|---|
| Jaspy (مصحح مصحح ، تمكين الخيوط) | 195 |
| jaspy (depugger المعوقة ، الخيط الممكّن) | 199 |
| JASPY (DOPUGGER المعوقين ، الخيوط المعوقة) | 206 |
| بريثون | 4184 |
| pypy.js (البرد) | 41425 |
| pypy.js (دافئ) | 847457 |
ومع ذلك ، هذا معيار غير عادل إلى حد ما لأنه لا يوجد معالجة DOM أو أي شيء آخر محدد للمتصفح. من المثير للدهشة أن تقدم الخيوط وتصحيح الأخطاء أي تكاليف تقريبًا.
هذا المشروع لا يزال في ولاية ألفا. واجهات برمجة التطبيقات غير مستقرة ، فهي غير مختبرة وليس جاهزة للاستخدام الإنتاجي. لم يتم تنفيذ بعض الميزات المذكورة أعلاه بعد.
لقد بدأت هذا المشروع في استراحة الفصل الدراسي والآن ، مع بدء الفصل الدراسي الجديد ، لدي وقت فراغ أقل بكثير. لذلك قد يستغرق الأمر بعض الوقت حتى أتمكن من استثمار المزيد من الوقت فيه. ومع ذلك ، أرحب جدًا بجميع أنواع المساهمات.
إذا كنت تحب أفكار Jaspy لا تتردد في الانضمام ، فهناك العديد من الأشياء التي يجب القيام بها:
لا تتردد في المساهمة أو تسأل عما إذا كان هناك أي شيء غير واضح حول الكود أو عملية المساهمة بشكل عام.
| ليبس: | تبعيات الطرف الثالث |
|---|---|
| الوحدات النمطية: | وحدات JavaScript الأصلية المجمعة |
| SRC: | ملفات مصدر JavaScript (تحتاج إلى المعالجة مسبقًا) |
| Jaspy: | خادم بيثون ، المحول وتصحيح الأخطاء عن بُعد |
شكراً جزيلاً لمشروع Brython على الإلهام لعدة أجزاء من رمز الفئات المبنية. شكراً جزيلاً لكتاب "500 خط أو أقل" وهو نقطة انطلاق جيدة إذا كنت تريد معرفة كيفية عمل المترجم المترجم.