QuickJS - lagani JavaScript mehanizam koji je razvio osnivač QEMU-a i FFmpeg-a

JavaScript

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:

  1. besplatni izraz: mala i brza biblioteka regularnih izraza koja je u skladu sa specifikacijom JavaScript ES2019
  2. 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
  3. 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.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.