QuickJS - un motor JavaScript ușor dezvoltat de fondatorul QEMU și FFmpeg

JavaScript

Matematicianul francez Fabrice Bellard, care a fondat proiectele QEMU și FFmpeg și care a creat, de asemenea, cea mai rapidă formulă pentru calcularea numărului Pi și a dezvoltat formatul de imagine BPG.

Fabrice Bellard este cel mai cunoscut ca dezvoltator principal al QEMU (un emulator care emulează diferite arhitecturi hardware) și Tiny C Compiler (tcc), un compilator C foarte mic, dar cuprinzător, scris inițial pentru a câștiga „Concursul internațional de cod C obscurizat”.

Acum recent a distribuit publicului prima versiune a noii sale lucrări care este în JavaScript și acesta este un nou motor numit JavaScript QuickJS.

Despre JavaScript QuickJS

Motorul JavaScript QuickJS este compact și proiectat pentru a fi încorporat în alte sisteme. Codul proiectului Este scris în C și distribuit sub licența MIT. De asemenea, este disponibilă o versiune de motor compilată în WebAssembly utilizând Emscripten și adecvată pentru rularea în browsere.

Implementarea JavaScript Acesta acceptă specificațiile ES2019, inclusiv module, generatoare asincrone și proxy.

În motorul JavaScript QuickJS sunt acceptate extensiile matematice non-standard opționale pentru JavaScript, cum ar fi tipurile BigInt și BigFloat, precum și supraîncărcarea operatorului.

Prin performanță, QuickJS depășește semnificativ analogii disponibiliDe exemplu, în testul bench-v8, motorul XS este cu 35% în avans, DukTape de peste două ori, JerryScript de trei ori și MuJS de șapte ori.

În plus față de bibliotecă pentru a încorpora motorul în aplicație, proiectul oferă și interpretul qjs, care poate fi folosit pentru a rula codul JavaScript din linia de comandă.

În plus, compilatorul qjsc este disponibil și este capabil să scoată fișiere executabile care pot fi rulate separat și că acestea nu necesită dependențe externe.

Dintre principalele caracteristici ale motorului JavaScript QuickJS se remarcă următoarele puncte:

  • Compact și ușor de integrat în alte proiecte. Codul include doar câteva fișiere C care nu necesită dependențe externe pentru a construi. O aplicație simplă compilată durează aproximativ 190 Kb
  • Performanțe foarte ridicate și timpi de pornire rapide. Trecerea a 56 mii de teste de compatibilitate ECMAScript durează aproximativ 100 de secunde atunci când rulați un desktop normal pe un nucleu. Inițializarea în timp de execuție durează mai puțin de 300 de microsecunde
  • Suport aproape complet pentru specificațiile ES2019 și suport complet pentru aplicația „B”, care definește componentele pentru compatibilitatea cu aplicații web mai vechi
  • Finalizați parcurgerea tuturor testelor ECMAScript Test Suite
  • Suport pentru compilarea codului Javascript în fișiere executabile fără dependențe externe
  • Colectorul de gunoi se bazează pe numărarea referințelor fără a efectua o curățare ciclică, permițând un comportament previzibil și un consum redus de memorie
  • Un set de extensii pentru calcule matematice în limbajul JavaScript
  • Un shell pentru executarea codului în modul linie de comandă, care acceptă evidențierea codului contextual
  • Biblioteca standard compactă peste biblioteca C.

În plus, Pe de altă parte, proiectul dezvoltă și trei biblioteci C. părți afiliate implicate în QuickJS și adecvate pentru utilizare individuală:

  1. freegexp: o bibliotecă de expresii regulate, mică și rapidă, care respectă specificația JavaScript ES2019
  2. libunicod: o mică bibliotecă Unicode care acceptă conversia de majuscule, normalizarea Unicode, cererile de script Unicode, interogările de categorie generală Unicode și toate proprietățile binare Unicode
  3. libbf: Aceasta este, de asemenea, o mică bibliotecă care implementează operații IEEE 754 în virgulă mobilă și funcții transcendentale cu rotunjire exactă. Este păstrat ca un proiect separat.

Cum se obține SavaScript QuickJS?

Descărcarea codului sursă pentru compilare se poate face de la următorul link. După instalare, este furnizat un Makefile pentru a compila motorul pe Linux sau Mac OS / X.

În același link puteți consulta documentația QuickJS pentru mai multe informatii. De asemenea, oferă informații de referință care arată performanța QuickJS cu motorul Google V8 și o comparație între acesta și alte instrumente din aceeași categorie.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.