QuickJS - egy könnyű JavaScript-motor, amelyet a QEMU és az FFmpeg alapítója fejlesztett ki

JavaScript

Fabrice Bellard francia matematikus, aki megalapította a QEMU és az FFmpeg projekteket, és aki elkészítette a Pi szám kiszámításának leggyorsabb képletét és kifejlesztette a BPG képformátumot is.

Fabrice Bellard az legismertebb a QEMU vezető fejlesztőjeként (egy emulátor, amely különféle hardverarchitektúrákat emulál) és a Tiny C Compiler (tcc), egy nagyon kicsi, de átfogó C fordító, amelyet eredetileg a „Nemzetközi Obfuscated C Code Contest” megnyerésére írtak.

Mostanában megosztotta a nyilvánossággal új művének első változatát ami JavaScript-ben van és ez az egy új motort, a JavaScript QuickJS nevet.

A JavaScript QuickJS-ről

A QuickJS JavaScript motor kompakt és úgy tervezték, hogy beépíthető legyen más rendszerekbe. A projekt kódja C-ben van megírva és az MIT licenc alatt terjesztik. Rendelkezésre áll továbbá az Emscripten használatával a WebAssembly-be összeállított motorbővítés, amely böngészőkben történő futtatásra alkalmas.

A JavaScript implementáció támogatja az ES2019 specifikációt, beleértve a modulokat, az aszinkron generátorokat és a proxykat.

A QuickJS JavaScript motorban az opcionális, nem szabványos matematikai kiterjesztések a JavaScript számára támogatottak, például a BigInt és a BigFloat típusok, valamint a kezelő túlterhelése.

Teljesítménye szerint a QuickJS jelentősen felülmúlja az elérhető analógokatPéldául a bench-v8 tesztben az XS motor 35% -kal előzi meg, a DukTape több mint kétszeresére, JerryScript háromszor és MuJS hétszer.

Amellett, hogy a könyvtár beágyazza a motort az alkalmazásba, a projekt a qjs tolmácsot is kínálja, amellyel a JavaScript-kód futtatható a parancssorból.

Ezen túlmenően, A qjsc fordító elérhető, és külön futtatható futtatható fájlok kiadására képes és ezekhez nincs szükség külső függőségekre.

A QuickJS JavaScript motor főbb jellemzői közül a következő pontok emelkednek ki:

  • Kompakt és könnyen integrálható más projektekbe. A kód csak néhány C fájlt tartalmaz, amelyek felépítéséhez nincs szükség külső függőségekre. Egy egyszerű lefordított alkalmazás kb. 190 Kb
  • Nagyon nagy teljesítmény és gyors indítási idő. 56 ezer ECMAScript kompatibilitási teszt teljesítése körülbelül 100 másodpercet vesz igénybe, amikor egy normál asztalt futtat egy kernelen. A futásidejű inicializálás kevesebb, mint 300 mikroszekundumot vesz igénybe
  • Majdnem teljes támogatás az ES2019 specifikációhoz és teljes támogatás a "B" alkalmazáshoz, amely meghatározza az összetevőket a régebbi webalkalmazásokkal való kompatibilitás érdekében
  • Töltse ki az ECMAScript Test Suite összes tesztjét
  • Támogatás a Javascript kód futtatható fájlokba történő fordításához külső függőségek nélkül
  • A szemétszedő a referenciaszámlálásra támaszkodik ciklikus tisztítás nélkül, lehetővé téve a kiszámítható viselkedést és a csökkentett memóriafelhasználást
  • Bővítmények halmaza matematikai számításokhoz a JavaScript nyelven
  • Héj a parancs végrehajtásához parancssori módban, amely támogatja a kontextus szerinti kódkiemelést
  • Kompakt szabványos könyvtár a C könyvtár felett

Ezen felül Másrészt a projekt három C könyvtárat is fejleszt a QuickJS-ben részt vevő és egyéni használatra alkalmas kapcsolt felek:

  1. freegexp: egy kicsi és gyors regex könyvtár, amely megfelel a JavaScript ES2019 specifikációnak
  2. libunicode: egy kis Unicode könyvtár, amely támogatja az esetkonverziót, az Unicode normalizálást, az Unicode szkript kéréseket, az Unicode általános kategóriájú lekérdezéseket és az összes Unicode bináris tulajdonságot
  3. libbf: Ez is egy kis könyvtár, amely az IEEE 754 lebegőpontos műveleteket és transzcendentális funkciókat valósítja meg pontos kerekítéssel. Külön projektként őrzik.

Hogyan szerezhetem meg a SavaScript QuickJS-t?

A forráskód letöltése fordításra innen: a következő link. A telepítés után egy Makefile áll rendelkezésre a motor Linux vagy Mac OS / X rendszerre történő fordításához.

Ugyanezen a linken megtekintheti a QuickJS dokumentációját további információért. Ezenkívül összehasonlító információkat is tartalmaz, amelyek bemutatják a QuickJS teljesítményét a Google V8-as motorjával, valamint összehasonlítják azt és az azonos kategóriába tartozó egyéb eszközöket.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.