QuickJS - viegls JavaScript dzinējs, ko izstrādājis QEMU un FFmpeg dibinātājs

JavaScript

Franču matemātiķis Fabriss Belards, kurš nodibināja QEMU un FFmpeg projektus un kurš arī izveidoja ātrāko Pi skaitļa aprēķināšanas formulu un izstrādāja BPG attēla formātu.

Fabrice Bellard ir vislabāk pazīstams kā vadošais QEMU izstrādātājs (emulators, kas atdarina dažādas aparatūras arhitektūras) un Tiny C Compiler (tcc), ļoti mazs, bet visaptverošs C kompilators, kas sākotnēji tika uzrakstīts, lai uzvarētu “Starptautiskajā apdalītā C koda konkursā”.

Tagad nesen publiskoja sava jaunā darba pirmo versiju kas ir JavaScript un tas ir jauns dzinējs ar nosaukumu JavaScript QuickJS.

Par JavaScript QuickJS

QuickJS JavaScript dzinējs tas ir kompakts un paredzēts iebūvēšanai citās sistēmās. Projekta kods Tas ir rakstīts C un izplatīts ar MIT licenci. Pieejama arī dzinēja uzbūve, kas apkopota WebAssemble, izmantojot Emscripten, un piemērota darbībai pārlūkprogrammās.

JavaScript ieviešana atbalsta ES2019 specifikāciju, ieskaitot moduļus, asinhronos ģeneratorus un starpniekserverus.

QuickJS JavaScript dzinējā tiek atbalstīti papildu nestandarta matemātikas paplašinājumi JavaScript, piemēram, BigInt un BigFloat veidi, kā arī operatora pārslodze.

Pēc veiktspējas QuickJS ievērojami pārspēj pieejamos analogusPiemēram, stenda-v8 testā XS dzinējs ir par 35% priekšā, DukTape vairāk nekā divas reizes, JerryScript trīs reizes un MuJS septiņas reizes.

Papildus bibliotēkai, lai iegultu motoru lietojumprogrammā, projektā tiek piedāvāts arī tulks qjs, kuru var izmantot, lai palaistu JavaScript kodu no komandrindas.

Turklāt, qjsc kompilators ir pieejams un spēj izdot izpildāmos failus, kurus var palaist atsevišķi un ka tām nav vajadzīgas ārējas atkarības.

No QuickJS JavaScript dzinēja galvenajām iezīmēm izceļas šādi punkti:

  • Kompakts un viegli integrējams citos projektos. Kodā ir tikai daži C faili, kuru izveidei nav nepieciešamas ārējas atkarības. Vienkārša kompilēta lietojumprogramma aizņem apmēram 190 Kb
  • Ļoti augsta veiktspēja un ātri palaišanas laiki. 56 tūkstošu ECMAScript saderības testu nokārtošana prasa apmēram 100 sekundes, darbinot parastu darbvirsmu kodolā. Runtime inicializēšana prasa mazāk nekā 300 mikrosekundes
  • Gandrīz pilns atbalsts ES2019 specifikācijai un pilnīgs atbalsts lietojumprogrammai "B", kas nosaka komponentus savietojamībai ar vecākām tīmekļa lietojumprogrammām
  • Pabeidziet visu ECMAScript Test Suite testu pāreju
  • Atbalsts Javascript koda apkopošanai izpildāmos failos bez ārējām atkarībām
  • Atkritumu savācējs paļaujas uz atskaites skaitīšanu bez cikliskas tīrīšanas, ļaujot paredzēt uzvedību un samazināt atmiņas patēriņu
  • Matemātisko aprēķinu paplašinājumu komplekts JavaScript valodā
  • Apvalks koda izpildei komandrindas režīmā, kas atbalsta konteksta koda izcelšanu
  • Kompakta standarta bibliotēka virs C bibliotēkas

Bez šī, No otras puses, projektā tiek attīstītas arī trīs C bibliotēkas saistītās personas, kas iesaistītas QuickJS un piemērotas individuālai lietošanai:

  1. freegexp: maza un ātra regex bibliotēka, kas atbilst JavaScript ES2019 specifikācijai
  2. Libunicode: neliela Unicode bibliotēka, kas atbalsta lietu pārveidošanu, Unicode normalizēšanu, Unicode skriptu pieprasījumus, Unicode vispārīgo kategoriju vaicājumus un visas Unicode binārās īpašības
  3. libbf: Šī ir arī neliela bibliotēka, kas ar precīzu noapaļošanu īsteno IEEE 754 peldošā komata operācijas un transcendentālās funkcijas. Tas tiek turēts kā atsevišķs projekts.

Kā iegūt SavaScript QuickJS?

Avota kodu apkopošanai var lejupielādēt no šo saiti. Pēc instalēšanas tiek nodrošināts Makefile, lai kompilētu dzinēju operētājsistēmā Linux vai Mac OS / X.

Tajā pašā saitē varat iepazīties ar QuickJS dokumentāciju lai iegūtu vairāk informācijas. Tas arī sniedz informāciju par etalonu, kas parāda QuickJS veiktspēju ar Google V8 dzinēju, kā arī salīdzinājumu ar to un citiem tās pašas kategorijas rīkiem.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.