QuickJS - lehký JavaScriptový engine vyvinutý zakladatelem QEMU a FFmpeg

JavaScript

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í:

  1. freegexp: malá a rychlá knihovna regulárního výrazu, která vyhovuje specifikaci JavaScriptu ES2019
  2. 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
  3. 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.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.