QuickJS - lagani JavaScript motor 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 ujedno 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, prvobitno napisan da pobijedi na „Međunarodnom natjecanju za skriveni C kod“.

Sada nedavno podijelio je javnosti prvu verziju svog novog djela koji je u JavaScript-u i ovo je novi mehanizam nazvan JavaScript QuickJS.

O JavaScript QuickJS-u

JavaScript Engine QuickJS kompaktan je i dizajniran za ugradnju u druge sisteme. Kod projekta Napisan je na C jeziku i distribuiran pod MIT licencom. Dostupna je i izrada motora kompajlirana u WebAssembly koristeći Emscripten i pogodna za pokretanje u pregledačima.

Implementacija JavaScript-a podržava specifikaciju ES2019, uključujući module, asinkrone generatore i proxyje.

U JavaScript Engine QuickJS podržana su opcionalna nestandardna matematička proširenja za JavaScript, kao što su tipovi BigInt i BigFloat, kao i preopterećenje operatora.

Svojim performansama QuickJS značajno nadmašuje dostupne analogeNa primjer, u testu bench-v8, XS motor ima 35% prednosti, DukTape više nego udvostručen, JerryScript tri puta i MuJS sedam puta.

Pored biblioteke za ugradnju motora u aplikaciju, projekat takođe nudi qjs tumač, koji se može koristiti za pokretanje JavaScript koda iz naredbenog retka.

Takođe, qjsc kompajler je dostupan i sposoban za izvođenje izvršnih datoteka koje se mogu pokrenuti odvojeno i da za njih nisu potrebne vanjske zavisnosti.

Od glavnih karakteristika QuickJS JavaScript motora izdvajaju se sljedeće tač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 kompajlirana aplikacija traje oko 190 Kb
  • Vrlo visoke performanse i brza vremena pokretanja. Prolazak 56 hiljada testova kompatibilnosti ECMAScripta traje približno 100 sekundi kada se pokreće normalna radna površina na jezgru. 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, omogućavajući predvidljivo ponašanje i smanjenu potrošnju memorije
  • Skup proširenja za matematičke proračune na JavaScript jeziku
  • Ljuska za izvršavanje koda u načinu naredbenog retka, koja podržava isticanje kontekstualnog koda
  • Kompaktna standardna biblioteka nad C bibliotekom

Pored ovoga, S druge strane, projekt također razvija tri C biblioteke povezane strane uključene u QuickJS i pogodne za individualnu upotrebu:

  1. freegexp: mala i brza biblioteka regularnih izraza koja je u skladu sa JavaScript ES2019 specifikacijom
  2. libunicode: mala Unicode biblioteka 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 biblioteka koja implementira IEEE 754 operacije s pomičnim zarezom i transcendentalne funkcije s tačnim zaokruživanjem. Čuva se kao zaseban projekat.

Kako doći do SavaScript QuickJS-a?

Preuzimanje izvornog koda za kompilaciju može se izvršiti iz sljedeći link. Nakon instalacije, nalazi se Makefile za kompajliranje motora na Linuxu ili Mac OS / X.

Na istom linku možete pogledati QuickJS dokumentaciju za više informacija. Takođe pruža referentne informacije koje pokazuju performanse QuickJS-a sa Googleovim V8 motorom i poređenje između njega i drugih alata iz iste kategorije.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.