QuickJS - ľahký JavaScriptový engine vyvinutý zakladateľom QEMU a FFmpeg

JavaScript

Francúzsky matematik Fabrice Bellard, ktorý založil projekty QEMU a FFmpeg a ktorý taktiež vytvoril najrýchlejší vzorec pre výpočet čísla Pi a vyvinul formát obrázka BPG.

Fabrice Bellardová je najlepšie známy ako vedúci vývojár QEMU (emulátor, ktorý emuluje rôzne hardvérové ​​architektúry) a Tiny C Compiler (tcc), veľmi malý, ale komplexný kompilátor C, ktorý bol pôvodne napísaný tak, aby vyhral „Medzinárodnú súťaž o obskurovaný kód C“.

Teraz nedávno zdieľal s verejnosťou prvú verziu svojho nového diela ktorý je v JavaScripte a ten je nový engine s názvom JavaScript QuickJS.

O aplikácii JavaScript QuickJS

JavaScriptový modul QuickJS je kompaktný a navrhnutý na zabudovanie do iných systémov. Kód projektu Je napísaný v jazyku C a distribuovaný pod licenciou MIT. K dispozícii je tiež zostavenie enginu kompilované do WebAssembly pomocou Emscripten a vhodné na spustenie v prehliadačoch.

Implementácia JavaScriptu podporuje špecifikáciu ES2019 vrátane modulov, asynchrónnych generátorov a serverov proxy.

V nástroji JavaScript QuickJS sú podporované voliteľné neštandardné matematické rozšírenia pre JavaScript, ako sú typy BigInt a BigFloat, ako aj preťaženie operátora.

Výkonom QuickJS výrazne prekonáva dostupné analógyNapríklad v teste bench-v8 je motor XS o 35% vpredu, DukTape sa viac ako zdvojnásobil, JerryScript trikrát a MuJS sedemkrát.

Okrem knižnice na vloženie modulu do aplikácie, projekt ponúka aj tlmočníka qjs, pomocou ktorého je možné spustiť kód JavaScript z príkazového riadku.

Okrem toho, kompilátor qjsc je k dispozícii a je schopný vydávať spustiteľné súbory, ktoré je možné spustiť osobitne a že tieto nevyžadujú externé závislosti.

Medzi hlavné vlastnosti modulu JavaScript QuickJS vynikajú tieto body:

  • Kompaktné a ľahko integrovateľné do iných projektov. Tento kód obsahuje iba niekoľko súborov C, ktoré na zostavenie nevyžadujú externé závislosti. Jednoduchá kompilovaná aplikácia trvá asi 190 kB
  • Veľmi vysoký výkon a rýchle spustenie. Úspešnosť 56 100 testov kompatibility s ECMAScript trvá pri behu bežnej pracovnej plochy na jadre približne 300 sekúnd. Inicializácia za behu trvá menej ako XNUMX mikrosekúnd
  • Takmer úplná podpora špecifikácie ES2019 a plná podpora aplikácie „B“, ktorá definuje komponenty pre kompatibilitu so staršími webovými aplikáciami
  • Dokončite absolvovanie všetkých testov testovacej sady ECMAScript
  • Podpora kompilácie kódu Javascript do spustiteľných súborov bez externých závislostí
  • Zberateľ odpadu sa spolieha na počítanie referencií bez cyklického čistenia, čo umožňuje predvídateľné správanie a zníženú spotrebu pamäte
  • Sada rozšírení pre matematické výpočty v jazyku JavaScript
  • Plášť na vykonávanie kódu v režime príkazového riadku, ktorý podporuje zvýraznenie kontextového kódu
  • Kompaktná štandardná knižnica s knižnicou C.

Okrem toho Na druhej strane projekt tiež rozvíja tri C knižnice spriaznené strany zapojené do QuickJS a vhodné na individuálne použitie:

  1. freegexp: malá a rýchla knižnica regulárnych výrazov, ktorá je v súlade so špecifikáciou JavaScript ES2019
  2. libunicode: malá knižnica Unicode, ktorá podporuje prevod veľkých a malých písmen, normalizáciu Unicode, požiadavky na skripty Unicode, dotazy všeobecných kategórií Unicode a všetky binárne vlastnosti Unicode
  3. libbf: Toto je tiež malá knižnica, ktorá implementuje operácie s pohyblivou rádovou čiarkou IEEE 754 a transcendentné funkcie s presným zaokrúhľovaním. Je vedený ako samostatný projekt.

Ako získať SavaScript QuickJS?

Stiahnutie zdrojového kódu pre kompiláciu je možné vykonať z nasledujúci odkaz. Po inštalácii je poskytnutý Makefile na zostavenie enginu v systéme Linux alebo Mac OS / X.

V rovnakom odkaze si môžete prečítať dokumentáciu k QuickJS Pre viac informácií. Poskytuje tiež referenčné informácie ukazujúce výkon QuickJS s motorom V8 spoločnosti Google a porovnanie medzi ním a ostatnými nástrojmi v rovnakej kategórii.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.