Fondatorul QEMU și FFmpeg a publicat motorul JavaScript QuickJS

Matematicianul francez Fabrice Bellard, fondator al proiectelor QEMU și FFmpeg, care a creat cea mai rapidă formulă de calculare a numărului Pi și a dezvoltat un format de imagine BPG, a publicat prima versiune a noului motor JavaScript QuickJS. Motorul se distinge prin compactitate și este orientat spre integrarea în alte sisteme. Codul proiectului este scris în limbajul C și este distribuit sub licența MIT. Este, de asemenea, disponibilă o versiune a motorului, compilată în WebAssembly cu ajutorul Emscripten, adecvată pentru rulare în browsere.

Implementarea JavaScript susține specificației ES2019, inclusiv module, generatoare asincrone și proxys. Opțional, sunt acceptate tipuri matematice neoficiale extensii pentru JavaScript, cum ar fi tipurile BigInt și BigFloat, precum și supraîncărcarea operatorilor. În ceea ce privește performanța, QuickJS depășește considerabil omologii săi, de exemplu, în testul bench-v8, depășind motorul
XS cu 35%, DukTape de mai mult de două ori, JerryScript de trei ori, iar MuJS de șapte ori. Pe lângă biblioteca pentru integrarea motorului în aplicații, proiectul oferă, de asemenea, un interpret qjs, care poate fi folosit pentru a rula cod JavaScript din linia de comandă. Mai mult, este disponibil un compilator qjsc, capabil să genereze fișiere executabile care pot fi rulate în mod izolat, fără dependențe externe.

Compactitate și ușurință în integrarea în alte proiecte. Codul include doar câteva fișiere în limbajul C, care nu necesită dependențe externe pentru compilare. Aplicația compilată de bază ocupă aproximativ 190 KB;

Caracteristici principale:

  • Performanță foarte ridicată și timp de inițializare redus. Rularea a 56 de mii de teste de compatibilitate cu ECMAScript durează aproximativ 100 de secunde pe un singur nucleu de PC desktop obișnuit. Inicializarea runtime durează mai puțin de 300 de microsecunde;
  • Suport aproape complet pentru specificația ES2019 și suport complet pentru aplicația „B”, care definește componentele pentru compatibilitatea cu aplicațiile web mai vechi;
  • Treceri complete ale tuturor testelor din setul ECMAScript Test Suite;
  • Suport pentru compilarea codului JavaScript în fișiere executabile fără dependențe externe;
  • Un colector de gunoi bazat pe numărarea referințelor, fără executarea curățării ciclice, care a permis obținerea unui comportament predictibil și reducerea consumului de memorie;
  • Un colector de gunoi bazat pe numărarea referințelor, care evită executarea ciclică a curățării, permițând astfel obținerea unui comportament predictibil și reducerea consumului de memorie;
  • Pachet de extensii pentru calcule matematice în limbajul JavaScript;
  • O interfață pentru execuția codului în modul de linie de comandă, care suportă sintaxă colorată;
  • O bibliotecă standard compactă cu legături la bibliotecile C.

Proiectul dezvoltă de asemenea trei biblioteci C asociate, folosite în QuickJS și potrivite pentru utilizare separată:

  • libregexp — o implementare rapidă a expresiilor regulate, complet compatibilă cu specificația Javascript ES 2019;
  • libunicode — o bibliotecă compactă pentru lucrul cu Unicode;
  • libbf — o implementare a operațiunilor cu numere în virgulă mobilă de precizie arbitrară și a funcțiilor transcedentale cu rotunjire precisă.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster