Francuski matematičar Fabrice Bellard, koji je osnovao projekte QEMU i FFmpeg, a koji je također stvorio najbržu formulu za izračunavanje broja Pi i razvio BPG format slike.
Fabrice Bellard je najpoznatiji kao vodeći programer QEMU-a (emulator koji oponaša različite hardverske arhitekture) i Tiny C Compiler (tcc), vrlo mali, ali sveobuhvatan C kompajler, izvorno napisan da pobijedi na „Međunarodnom natjecanju za prikriveni C kod“.
Sad nedavno podijelio je javnosti prvu verziju svog novog djela koji je u JavaScript-u, a ovo je novi motor nazvan JavaScript QuickJS.
O JavaScript QuickJS-u
JavaScript motor QuickJS kompaktan je i dizajniran za ugradnju u druge sustave. Kod projekta Napisan je na C jeziku i distribuiran pod MIT licencom. Također je dostupna i izrada motora kompajlirana u WebAssembly pomoću Emscripten i prikladna za pokretanje u preglednicima.
Implementacija JavaScript-a podržava specifikaciju ES2019, uključujući module, asinkrone generatore i proxyje.
U JavaScript Engine QuickJS podržana su neobavezna nestandardna matematička proširenja za JavaScript, kao što su BigInt i BigFloat, kao i preopterećenje operatera.
Svojim performansama QuickJS značajno nadmašuje dostupne analogePrimjerice, u testu bench-v8 XS motor ima 35% prednosti, DukTape više nego udvostručen, JerryScript tri puta i MuJS sedam puta.
Pored knjižnice za ugradnju stroja u aplikaciju, projekt također nudi qjs tumač, koji se može koristiti za pokretanje JavaScript koda iz naredbenog retka.
Osim toga, kompajler qjsc je dostupan i sposoban je za izvođenje izvršnih datoteka koje se mogu pokrenuti odvojeno te da za njih nisu potrebne vanjske ovisnosti.
Od glavnih značajki QuickJS JavaScript motora ističu se sljedeće točke:
- Kompaktan i jednostavan za integraciju u druge projekte. Kôd uključuje samo nekoliko C datoteka koje ne zahtijevaju vanjske ovisnosti za izgradnju. Jednostavna kompilirana aplikacija traje oko 190 Kb
- Vrlo visoke performanse i brza vremena pokretanja. Prolazak 56 tisuća testova kompatibilnosti ECMAScripta traje otprilike 100 sekundi prilikom pokretanja normalne radne površine na jezgri. Inicijalizacija izvođenja traje manje od 300 mikrosekundi
- Gotovo puna podrška za specifikaciju ES2019 i puna podrška za aplikaciju "B", koja definira komponente za kompatibilnost sa starijim web aplikacijama
- Dovršite prolazak svih testova paketa ECMAScript Test Suite
- Podrška za kompajliranje Javascript koda u izvršne datoteke bez vanjskih ovisnosti
- Sakupljač smeća oslanja se na brojanje referenci bez cikličkog čišćenja, što omogućuje predvidljivo ponašanje i smanjenu potrošnju memorije
- Skup proširenja za matematičke izračune na JavaScript jeziku
- Ljuska za izvršavanje koda u načinu naredbenog retka, koja podržava isticanje kontekstualnog koda
- Kompaktna standardna knjižnica u odnosu na C biblioteku
Pored ovoga, S druge strane, projekt također razvija tri C knjižnice povezane strane uključene u QuickJS i prikladne za individualnu upotrebu:
- besplatni izraz: mala i brza biblioteka regularnih izraza koja je u skladu sa specifikacijom JavaScript ES2019
- libunicode: mala Unicode knjižnica koja podržava pretvaranje velikih i malih slova, normalizaciju Unicodea, zahtjeve skripte Unicode, upite opće kategorije Unicode i sva binarna svojstva Unicodea
- libbf: Ovo je također mala knjižnica koja implementira IEEE 754 operacije s pomičnim zarezom i transcendentalne funkcije s točnim zaokruživanjem. Čuva se kao zaseban projekt.
Kako doći do SavaScript QuickJS-a?
Preuzimanje izvornog koda za kompilaciju može se izvršiti iz sljedeći link. Nakon instalacije dostupan je Makefile za kompajliranje motora na Linuxu ili Mac OS / X.
Na istoj poveznici možete pogledati QuickJS dokumentaciju za više informacija. Također pruža referentne informacije koje pokazuju izvedbu QuickJS-a s Googleovim V8 motorom i usporedbu između njega i ostalih alata iz iste kategorije.