„QuickJS“ - lengvas „JavaScript“ variklis, kurį sukūrė QEMU ir FFmpeg įkūrėjai

JavaScript

Prancūzų matematikas Fabrice'as Bellardas, kuris įkūrė QEMU ir FFmpeg projektus, taip pat sukūrė greičiausią Pi skaičiaus apskaičiavimo formulę ir sukūrė BPG vaizdo formatą.

Fabrice'as Bellardas yra geriausiai žinomas kaip pagrindinis QEMU kūrėjas (emuliatorius, kuris imituoja įvairias aparatinės įrangos architektūras) ir „Tiny C Compiler“ (tcc), labai mažą, bet išsamų C kompiliatorių, iš pradžių parašytą laimėti „Tarptautinį apgaulingo C kodo konkursą“.

Dabar neseniai pasidalijo visuomenei pirmąja savo naujojo kūrinio versija kuris yra „JavaScript“ ir tai yra naujas variklis, vadinamas „JavaScript QuickJS“.

Apie „JavaScript QuickJS“

„QuickJS JavaScript“ variklis jis yra kompaktiškas ir skirtas integruoti į kitas sistemas. Projekto kodas Tai parašyta C kalba ir platinama pagal MIT licenciją. Taip pat yra variklio konstrukcija, sukompiliuota „WebAssembly“ naudojant „Emscripten“ ir tinkama vykdyti naršyklėse.

„JavaScript“ diegimas Jis palaiko ES2019 specifikaciją, įskaitant modulius, asinchroninius generatorius ir įgaliojimus.

„QuickJS JavaScript“ variklyje Palaikomi pasirinktiniai nestandartiniai „JavaScript“ matematikos plėtiniai, pvz., „BigInt“ ir „BigFloat“ tipai, taip pat operatoriaus perkrova.

Pagal našumą „QuickJS“ gerokai lenkia galimus analogusPavyzdžiui, „bench-v8“ teste XS variklis lenkia 35%, „DukTape“ daugiau nei dvigubai, „JerryScript“ tris kartus ir „MuJS“ septynis kartus.

Be bibliotekos, kad galėtumėte įterpti variklį į programą, projekte taip pat siūlomas vertėjas žodžiu qjs, kurį galima naudoti norint paleisti „JavaScript“ kodą iš komandinės eilutės.

Be to, qjsc kompiliatorius yra prieinamas ir gali paleisti vykdomuosius failus, kuriuos galima paleisti atskirai ir kad tam nereikia išorinių priklausomybių.

Iš pagrindinių „QuickJS JavaScript“ variklio savybių išsiskiria šie dalykai:

  • Kompaktiškas ir lengvai integruojamas į kitus projektus. Kode yra tik keli C failai, kuriems kurti nereikia išorinių priklausomybių. Paprasta sudaryta programa užima apie 190 Kb
  • Labai didelis našumas ir greitas paleidimo laikas. 56 tūkstančių ECMAScript suderinamumo testų išlaikymas užtrunka maždaug 100 sekundžių, kai branduolyje veikia įprastas darbalaukis. Vykdymo laiko inicijavimas trunka mažiau nei 300 mikrosekundžių
  • Beveik visas ES2019 specifikacijos palaikymas ir visiškas palaikymas „B“ programai, kuri apibrėžia komponentų suderinamumą su senesnėmis žiniatinklio programomis
  • Užbaikite visus „ECMAScript Test Suite“ testus
  • „Javascript“ kodo kompiliavimo į vykdomuosius failus palaikymas be išorinių priklausomybių
  • Šiukšlių surinkėjas remiasi etaloniniu skaičiavimu be ciklinio valymo, leidžiančio numatyti elgesį ir sumažinti atminties sąnaudas
  • Matematinių skaičiavimų „JavaScript“ kalba plėtinių rinkinys
  • Korpusas, skirtas vykdyti kodą komandinės eilutės režimu, palaikantis kontekstinį kodo paryškinimą
  • Kompaktiška standartinė biblioteka per C biblioteką

Be to, Kita vertus, projekte taip pat kuriamos trys C bibliotekos susijusios šalys, susijusios su „QuickJS“ ir tinkamos naudoti individualiai:

  1. freegexp: maža ir greita regex biblioteka, atitinkanti „JavaScript ES2019“ specifikaciją
  2. Libunicode: maža „Unicode“ biblioteka, palaikanti bylų konvertavimą, „Unicode“ normalizavimą, „Unicode“ scenarijaus užklausas, „Unicode“ bendros kategorijos užklausas ir visas „Unicode“ dvejetaines ypatybes
  3. libbf: Tai taip pat nedidelė biblioteka, kuri tiksliai suapvalina IEEE 754 slankiojo kablelio operacijas ir transcendentines funkcijas. Jis saugomas kaip atskiras projektas.

Kaip gauti „SavaScript QuickJS“?

Atsisiųsti šaltinio kodą kompiliavimui galima iš šią nuorodą. Po įdiegimo pateikiama „Makefile“, skirta kompiliuoti variklį „Linux“ arba „Mac OS / X“.

Toje pačioje nuorodoje galite peržiūrėti „QuickJS“ dokumentaciją Daugiau informacijos. Čia taip pat pateikiama palyginamoji informacija, rodanti „QuickJS“ našumą naudojant „Google“ V8 variklį, ir palyginimas su kitais tos pačios kategorijos įrankiais.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.