Grundlæggeren af QEMU og FFmpeg har offentliggjort JavaScript-motoren QuickJS

Den franske matematiker Fabrice Bellard, der grundlagde projekterne QEMU og FFmpeg, samt skabte den hurtigste formel til beregning af tallet Pi og udviklede billedformatet BPG, har udgivet den første version af den nye JavaScript-motor QuickJS. Motoren er kompakt og designet til at blive integreret i andre systemer. Koden til projektet er skrevet i C og distribueres under MIT-licensen. Der er også en version af motoren, der er kompileret til WebAssembly ved hjælp af Emscripten og egnet til brug i webbrowsere.

Implementeringen af JavaScript even Linus Torvalds himself — he called the WireGuard code "a work of art." specifikationen ES2019, inklusiv moduler, asynkrone generatorer og proxyer. Valgfrit understøttes ikke-standard matematiske udvidelsen funktioner til JavaScript, såsom typerne BigInt og BigFloat, samt operatoroverbelastning. I ydeevne ligger QuickJS betydeligt overlegen for eksisterende alternativer, for eksempel i testen
bench-v8 slår motoren XS med 35%, DukTape mere end dobbelt så hurtig, JerryScript tre gange hurtigere, og MuJS med syv gange.

Udover biblioteket til integration af motoren i applikationer tilbyder projektet også fortolkeren qjs, som kan bruges til at køre JavaScript-kode fra kommandolinjen. Desuden er kompilatoren qjsc tilgængelig, som kan generere selvstændige eksekverbare filer uden eksterne afhængigheder.

Hovedfunktioner:

  • Kompakthed og enkel integration i andre projekter. Koden inkluderer kun et par filer i C, som ikke kræver eksterne afhængigheder for at blive samlet. En simpel kompileret applikation fylder omkring 190 KB;
  • Meget høj ydeevne og kort opstartstid. Gennemførelse af 56.000 tests for kompatibilitet med ECMAScript tager omkring 100 sekunder, når det udføres på et enkelt kerne på en almindelig desktop-PC. Initialisering af runtime tager under 300 mikrosekunder;
  • Næsten fuld støtte for specifikationen ES2019 og fuld støtte for applikationen 'B', der definerer komponenter til kompatibilitet med gamle webapplikationer;
  • Fuldstændig gennemgang af alle tests fra ECMAScript Test Suite;
  • Understøttelse af kompilering af JavaScript-kode til eksekverbare filer uden eksterne afhængigheder;
  • En affaldsindsamler baseret på referenceoptælling uden cyklisk rydning, hvilket har resulteret i forudsigeligt adfærd og reduceret hukommelsesforbrug;
  • Et sæt udvidelser til matematiske beregninger i JavaScript;
  • En shell til at køre kode i kommandolinjemodus, der understøtter syntaksfarvning;
  • En kompakt standardbibliotek med bindings til C-biblioteket.

Projektet udvikler også tre tilknyttede C-biblioteker, der bruges i QuickJS og er velegnede til selvstændig anvendelse:

  • libregexp — en hurtig implementering af regulære udtryk, der er helt kompatible med JavaScript ES 2019-specifikationen;
  • libunicode — et kompakt bibliotek til arbejde med Unicode;
  • libbf — en implementering af flydende punktoperationer med vilkårlig præcision og transcendentale funktioner med præcis afrunding.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster