Francouzský matematik Fabrice Bellard, který založil projekty QEMU a FFmpeg a který také vytvořil nejrychlejší vzorec pro výpočet čísla Pi a vyvinul formát obrázku BPG.
Fabrice Bellard je nejlépe známý jako hlavní vývojář QEMU (emulátor, který emuluje různé hardwarové architektury) a Tiny C Compiler (tcc), velmi malý, ale komplexní C kompilátor, původně napsaný jako vítěz soutěže „International Obfuscated C Code Contest“.
Teď nedávno sdílel s veřejností první verzi svého nového díla který je v JavaScriptu a to je nový modul s názvem JavaScript QuickJS.
O aplikaci JavaScript QuickJS
JavaScriptový modul QuickJS je kompaktní a navržený pro zabudování do jiných systémů. Kód projektu Je napsán v jazyce C a distribuován pod licencí MIT. K dispozici je také sestavení enginu kompilované do WebAssembly pomocí Emscripten a vhodné pro běh v prohlížečích.
Implementace JavaScriptu podporuje specifikaci ES2019, včetně modulů, asynchronních generátorů a proxy.
V modulu JavaScript QuickJS jsou podporována volitelná nestandardní matematická rozšíření pro JavaScript, jako jsou typy BigInt a BigFloat, stejně jako přetížení operátora.
Výkonem QuickJS výrazně překonává dostupné analogyNapříklad v testu bench-v8 je motor XS o 35% vpřed, DukTape se více než zdvojnásobil, JerryScript třikrát a MuJS sedmkrát.
Kromě knihovny pro vložení modulu do aplikace, projekt také nabízí tlumočníka qjs, který lze použít ke spuštění kódu JavaScript z příkazového řádku.
Navíc, kompilátor qjsc je k dispozici a je schopen vydávat spustitelné soubory, které lze spustit samostatně a že tyto nevyžadují externí závislosti.
Mezi hlavní funkce modulu JavaScript QuickJS vynikají následující body:
- Kompaktní a snadno integrovatelný do jiných projektů. Kód obsahuje pouze několik souborů C, které k sestavení nevyžadují externí závislosti. Jednoduchá kompilovaná aplikace trvá přibližně 190 kB
- Velmi vysoký výkon a rychlé spouštěcí časy. Úspěšné absolvování 56 tisíc testů kompatibility ECMAScript trvá přibližně 100 sekund při spuštění normální pracovní plochy v jádře. Inicializace za běhu trvá méně než 300 mikrosekund
- Téměř plná podpora specifikace ES2019 a plná podpora aplikace „B“, která definuje komponenty pro kompatibilitu se staršími webovými aplikacemi
- Dokončete průchod všech testů sady ECMAScript Test Suite
- Podpora kompilace kódu Javascript do spustitelných souborů bez externích závislostí
- Garbage collector spoléhá na počítání referencí bez provádění cyklického čištění, což umožňuje předvídatelné chování a sníženou spotřebu paměti
- Sada rozšíření pro matematické výpočty v jazyce JavaScript
- Prostředí pro provádění kódu v režimu příkazového řádku, které podporuje zvýraznění kontextového kódu
- Kompaktní standardní knihovna přes knihovnu C.
Kromě toho Na druhé straně projekt také vyvíjí tři knihovny C. spřízněné strany zapojené do QuickJS a vhodné pro individuální použití:
- freegexp: malá a rychlá knihovna regulárního výrazu, která vyhovuje specifikaci JavaScriptu ES2019
- libunicode: malá knihovna Unicode, která podporuje převod písmen, normalizaci Unicode, požadavky na skripty Unicode, dotazy obecné kategorie Unicode a všechny binární vlastnosti Unicode
- libbf: Toto je také malá knihovna, která implementuje operace s plovoucí desetinnou čárkou IEEE 754 a transcendentní funkce s přesným zaokrouhlováním. Je veden jako samostatný projekt.
Jak získat SavaScript QuickJS?
Stahování zdrojového kódu pro kompilaci lze provést z následující odkaz. Po instalaci je k dispozici soubor Makefile pro kompilaci enginu v systému Linux nebo Mac OS / X.
Ve stejném odkazu můžete nahlédnout do dokumentace QuickJS Pro více informací. Poskytuje také srovnávací informace ukazující výkon QuickJS s motorem V8 společnosti Google a srovnání mezi ním a dalšími nástroji ve stejné kategorii.