QuickJS - një motor i lehtë JavaScript i zhvilluar nga themeluesi i QEMU dhe FFmpeg

JavaScript

Matematikan francez Fabrice Bellard, i cili themeloi projektet QEMU dhe FFmpeg dhe i cili gjithashtu krijoi formulën më të shpejtë për llogaritjen e numrit Pi dhe zhvilloi formatin e imazhit BPG.

Fabrice Bellard është më i njohur si zhvilluesi kryesor i QEMU (një emulator që imiton arkitekturë të ndryshëm të pajisjeve) dhe Tiny C Compiler (tcc), një përpilues shumë i vogël, por gjithëpërfshirës C, i shkruar fillimisht për të fituar "Konkursin Ndërkombëtar të Kodit të Obusuar".

Tani së fundmi ndau për publikun versionin e parë të veprës së tij të re e cila është në JavaScript dhe kjo është një motor i ri i quajtur JavaScript QuickJS.

Rreth JavaScript QuickJS

Motori QuickJS JavaScript është kompakt dhe i projektuar për tu përfshirë në sisteme të tjera. Kodi i projektit Shtë shkruar në C dhe shpërndahet nën licencën MIT. Gjithashtu i disponueshëm është një ndërtesë motorike e përpiluar në WebAssemble duke përdorur Emscripten dhe e përshtatshme për tu ekzekutuar në shfletues.

Zbatimi i JavaScript Ai mbështet specifikimin ES2019, duke përfshirë modulet, gjeneratorët asinkronë dhe përfaqësuesit.

Në motorin QuickJS JavaScript Janë mbështetur shtesat opsionale jo standarde të matematikës për JavaScript, të tilla si llojet BigInt dhe BigFloat, si dhe mbingarkesa e operatorëve.

Nga performanca, QuickJS dukshëm tejkalon analogët e disponueshëmPër shembull, në testin bench-v8, motori XS është 35% përpara, DukTape më shumë se dyfishuar, JerryScript tre herë dhe MuJS shtatë herë.

Përveç bibliotekës për të vendosur motorin në aplikacion, projekti gjithashtu ofron interpretuesin qjs, i cili mund të përdoret për të ekzekutuar kodin JavaScript nga rreshti i komandës.

Përveç kësaj, përpiluesi qjsc është i disponueshëm dhe është i aftë të nxjerrë skedarë të ekzekutueshëm që mund të ekzekutohen veçmas dhe se këto nuk kërkojnë varësi të jashtme.

Nga tiparet kryesore të motorit QuickJS JavaScript spikasin pikat e mëposhtme:

  • Kompakt dhe i thjeshtë për tu integruar në projekte të tjera. Kodi përfshin vetëm disa skedarë C që nuk kërkojnë varësi të jashtme për t'u ndërtuar. Një kërkesë e thjeshtë e përpiluar kërkon rreth 190 Kb
  • Performancë shumë e lartë dhe kohë të fillimit të shpejtë. Kalimi i 56 mijë testeve të përputhshmërisë ECMAScript kërkon afërsisht 100 sekonda kur ekzekutoni një desktop normal në një bërthamë. Fillimi i kohës së zgjatjes zgjat më pak se 300 mikrosekonda
  • Mbështetje gati e plotë për specifikimin ES2019 dhe mbështetje e plotë për aplikacionin "B", i cili përcakton komponentët për pajtueshmëri me aplikacionet e vjetra në internet
  • Përfundoni kalimin e të gjitha testeve të ECMAScript Test Suite
  • Mbështetje për përpilimin e kodit Javascript në skedarë të ekzekutueshëm pa varësi të jashtme
  • Grumbulluesi i mbeturinave mbështetet në numërimin e referencës pa kryer një pastrim ciklik, duke lejuar sjellje të parashikueshme dhe konsum të zvogëluar të kujtesës
  • Një grup zgjerimesh për llogaritjet matematikore në gjuhën JavaScript
  • Një predhë për ekzekutimin e kodit në mënyrën e rreshtit të komandës, e cila mbështet theksimin e kodit kontekstual
  • Biblioteka standarde kompakte mbi bibliotekën C

Përveç kësaj, Nga ana tjetër, projekti po zhvillon gjithashtu tre biblioteka C palët e lidhura të përfshira në QuickJS dhe të përshtatshme për përdorim individual:

  1. freegexp: një bibliotekë e vogël dhe e shpejtë e shprehjeve të rregullta që përputhet me specifikimet JavaScript ES2019
  2. kodi libunik: një bibliotekë e vogël Unicode që mbështet konvertimin e shkronjave, normalizimin e Unicode, kërkesat e shkrimit Unicode, pyetjet e kategorisë së përgjithshme të Unicode dhe të gjitha vetitë binare të Unicode
  3. libbf: Kjo është gjithashtu një bibliotekë e vogël që zbaton operacionet e pikës lundruese IEEE 754 dhe funksionet transcendentale me rrumbullakim të saktë. Isshtë mbajtur si një projekt i veçantë.

Si të merrni SavaScript QuickJS?

Shkarkimi i kodit burimor për përpilim mund të bëhet nga lidhja e mëposhtme. Pas instalimit, ofrohet një Makefile për përpilimin e motorit në Linux ose Mac OS / X.

Në të njëjtën lidhje mund të konsultoheni me dokumentacionin QuickJS për më shumë informacion. Ai gjithashtu siguron informacione krahasuese që tregojnë performancën e QuickJS me motorin V8 të Google dhe një krahasim midis tij dhe mjeteve të tjera në të njëjtën kategori.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.