Osnivač QEMU i FFmpeg objavio je JavaScript motor QuickJS

Francuski matematičar Fabrice Bellard, koji je osnovao projekte QEMU i FFmpeg, kao i stvorio najbržu formulu za izračunavanje broja Pi i razvio format slika BPG, objavio je prvi broj novog JavaScript engine-a QuickJS. Engine se odlikuje kompaktnošću i namijenjen je ugradnji u druge sustave. Kod projekta napisan je na jeziku C i distribuiran je pod MIT licencom. Također je dostupna verzija engine-a koja je kompajlirana u WebAssembly uz pomoć Emscriptena i pogodna je za izvršavanje u preglednicima.

Implementacija JavaScript podržava specifikacije ES2019, uključujući module, asinhrone generatore i proxy. Opcionalno podržava nestandardne matematičke ekstenzije tipove BigInt i BigFloat, kao i preopterećenje operatora. U pogledu performansi, QuickJS značajno nadmašuje postojeće analoge, primjerice, u testu
bench-v8 nadmašuje engine XS za 35%, DukTape više od dva puta, JerryScript tri puta, a MuJS sedam puta.

Osim biblioteke za ugradnju engine-a u aplikacije, projekt nudi i interpreter qjs, koji se može koristiti za pokretanje JavaScript koda iz komandne linije. Štoviše, dostupan je i kompajler qjsc, sposoban generirati izvršne datoteke pogodne za samostalno pokretanje, bez vanjskih ovisnosti.

Glavne značajke:

  • Kompaktnoća i jednostavnost ugradnje u druge projekte. Kod uključuje samo nekoliko datoteka na jeziku C, ne zahtijevajući vanjske ovisnosti za kompilaciju. Skompilirana najjednostavnija aplikacija zauzima oko 190 Kb;
  • Veoma visoke performanse i kratko vrijeme pokretanja. Prolazak od 56 tisuća testova kompatibilnosti s ECMAScriptom traje oko 100 sekundi kada se izvršava na jednom jerdru običnog stolnog računala. Inicijalizacija runtime-a traje manje od 300 mikrosekundi;
  • Gotovo potpuna podrška za specifikaciju ES2019 i potpuna podrška za aplikaciju 'B', koja određuje komponente za kompatibilnost sa starim web aplikacijama;
  • Potpuno prolazak svih testova iz skupa ECMAScript Test Suite;
  • Podrška za kompilaciju koda na jeziku Javascript u izvršne datoteke bez vanjskih ovisnosti;
  • Sakupljač smeća temeljen na brojanju referenci bez cikličkog čišćenja, što je omogućilo postizanje predvidljivog ponašanja i smanjenje potrošnje memorije;
  • Skup ekstenzija za matematičke izračune na jeziku JavaScript;
  • Okruženje za izvršavanje koda u komandnoj liniji koje podržava isticanje sintakse;
  • Kompaktna standardna biblioteka s obradama iz C biblioteke.

Projekat takođe razvija tri prateće C biblioteke, korišćene u QuickJS-u i prikladne za samostalnu primenu:

  • libregexp — brza implementacija regularnih izraza, potpuno kompatibilna sa specifikacijom JavaScript ES 2019;
  • libunicode — kompaktna biblioteka za rad sa Unicode-om;
  • libbf — implementacija operacija s pomičnom tačkom proizvoljne preciznosti i transcendentnih funkcija s tačnim zaokruživanjem.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster