QuickJS - מנוע JavaScript קל משקל שפותח על ידי מייסד QEMU ו- FFmpeg

JavaScript

המתמטיקאי הצרפתי פבריס בלארד, שהקים את הפרויקטים QEMU ו- FFmpeg ויצר גם את הנוסחה המהירה ביותר לחישוב מספר ה- Pi ופיתח את פורמט התמונה BPG.

פבריס בלארד היא ידוע בעיקר כמפתח הראשי של QEMU (אמולטור המדמה ארכיטקטורות חומרה שונות) ו- Tiny C Compiler (tcc), מהדר C קטן אך מקיף מאוד, שנכתב במקור כדי לזכות בתחרות "הבינלאומית קוד C מעורפלת".

עכשיו לאחרונה שיתף את הציבור בגרסה הראשונה של יצירתו החדשה שנמצא ב- JavaScript וזהו מנוע חדש בשם JavaScript QuickJS.

אודות JavaScript QuickJS

מנוע ה- JavaScript של QuickJS הוא קומפקטי ומתוכנן לשילוב במערכות אחרות. קוד הפרויקט הוא כתוב ב- C ומופץ ברישיון MIT. זמין גם מבנה מנוע שהורכב לתוך WebAssembly באמצעות Emscripten ומתאים להפעלה בדפדפנים.

הטמעת JavaScript תומך במפרט ES2019, כולל מודולים, גנרטורים אסינכרוניים ו- Proxy.

במנוע ה- JavaScript של QuickJS תוספים תוספים מתמטיים אופציונליים שאינם סטנדרטיים עבור JavaScript, כגון סוגי BigInt ו- BigFloat, כמו גם עומס יתר על המפעיל.

לפי ביצועים, QuickJS עולה בצורה משמעותית על אנלוגים זמיניםלדוגמא, במבחן ה- bench-v8, מנוע ה- XS מקדים 35%, ה- DukTape הוכפל יותר מ- JerryScript שלוש פעמים ו- MuJS שבע פעמים.

בנוסף לספרייה להטמעת המנוע ביישום, הפרויקט מציע גם את המתורגמן qjs, באמצעותו ניתן להפעיל קוד JavaScript משורת הפקודה.

בנוסף, מהדר qjsc זמין ומסוגל להוציא קבצי הפעלה הניתנים להפעלה בנפרד וכי אלה אינם דורשים תלות חיצונית.

מהתכונות העיקריות של מנוע ה- JavaScript של QuickJS הנקודות הבאות בולטות:

  • קומפקטי וקל לשילוב בפרויקטים אחרים. הקוד כולל רק כמה קבצי C שאינם דורשים בניית תלות חיצונית. יישום מורכב פשוט אורך כ -190 קילו-בייט
  • ביצועים גבוהים מאוד וזמני הפעלה מהירים. מעבר של 56 אלף בדיקות תאימות ECMAScript לוקח כ- 100 שניות כאשר מריצים שולחן עבודה רגיל על גרעין. אתחול זמן ריצה לוקח פחות מ -300 מיקרו שניות
  • כמעט תמיכה מלאה במפרט ES2019 ותמיכה מלאה ביישום "B", המגדיר את הרכיבים לתאימות ליישומי אינטרנט ישנים יותר
  • השלם את המעבר של כל הבדיקות של חבילת הבדיקה ECMAScript
  • תמיכה בהרכבת קוד Javascript לקבצי הפעלה ללא תלות חיצונית
  • אספן האשפה מסתמך על ספירת הפניות ללא ניקוי מחזורי, מה שמאפשר התנהגות צפויה וצריכת זיכרון מופחתת
  • סט הרחבות לחישובים מתמטיים בשפת JavaScript
  • מעטפת לביצוע קוד במצב שורת פקודה, התומכת בהדגשת קוד הקשר
  • ספרייה סטנדרטית קומפקטית על פני ספריית C.

בנוסף לכל אלה, מצד שני, הפרויקט מפתח גם שלוש ספריות C צדדים קשורים המעורבים ב- QuickJS ומתאימים לשימוש פרטני:

  1. freegexp: ספריית regex קטנה ומהירה שתואמת למפרט JavaScript ES2019
  2. ליבוניקוד: ספריית Unicode קטנה התומכת בהמרת מקרה, נורמליזציה של Unicode, בקשות סקריפט של Unicode, שאילתות בקטגוריה כללית של Unicode וכל המאפיינים הבינאריים של Unicode
  3. libbf: זוהי גם ספרייה קטנה המיישמת פעולות נקודה צפה של IEEE 754 ופונקציות טרנסצנדנטליות בעזרת עיגול מדויק. זה נשמר כפרויקט נפרד.

כיצד להשיג SavaScript QuickJS?

ניתן לבצע הורדת קוד המקור לאוסף הקישור הבא. לאחר ההתקנה, מסופק Makefile לאיסוף המנוע ב- Linux או Mac OS / X.

באותו קישור תוכלו לעיין בתיעוד QuickJS למידע נוסף. הוא גם מספק מידע מדד המציג ביצועי QuickJS עם מנוע ה- V8 של גוגל והשוואה בינו לבין כלים אחרים באותה קטגוריה.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.