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:
- freegexp: malá a rýchla knižnica regulárnych výrazov, ktorá je v súlade so špecifikáciou JavaScript ES2019
- 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
- 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.