Grunnleggeren av QEMU og FFmpeg har publisert JavaScript-motoren QuickJS

Den franske matematikeren Fabrice Bellard, som en gang grunnla prosjektene QEMU og FFmpeg, samt skapte den raskeste formelen for beregning av tallet Pi og utviklet bildeformatet BPG, har publisert den første utgaven av en ny JavaScript-motor. QuickJSMotoren er kompakt og designet for integrering i andre systemer. Koden til prosjektet er skrevet i C og distribueres under MIT-lisensen. Det finnes også en versjon av motoren som er kompilert til WebAssembly med Emscripten og er egnet for kjøring i nettlesere.

Implementeringen av JavaScript Funksjon spesifikasjonen ES2019, inkludert moduler, asynkrone generatorer og proxier. Valgfritt støttes ikke-standard matematiske utvidelse funksjoner for JavaScript, som typene BigInt og BigFloat, samt operatoroverlasting. Når det gjelder ytelse, er QuickJS betydelig det eksisterende alternativene med fremfor eksisterende alternativer; for eksempel i testen
bench-v8, overgår motoren 35%, DukTape mer enn dobbelt, JerryScript tre ganger, mens MuJS syv ganger). Prosjektet tilbyr et bibliotek for å integrere motoren, en qjs-tolk for å kjøre JavaScript-kode fra kommandolinjen og en qjsc-kompilator for å generere frittstående kjørbare filer. Koden er skrevet i C og med syv ganger.

I tillegg til biblioteket for å integrere motoren i applikasjoner tilbyr prosjektet også tolkeren qjs, som kan brukes til å kjøre JavaScript-kode fra kommandolinjen. I tillegg er kompilatoren qjsc tilgjengelig, som er i stand til å generere kjørbare filer for isolert kjøring, uten eksterne avhengigheter.

Hovedfunksjoner:

  • Kompakt og enkelt å integrere i andre prosjekter. Koden består kun av noen få filer i C, som ikke krever eksterne avhengigheter for kompilering. Det kompilert enkleste programmet tar omtrent 190 KB;
  • Svært høy ytelse og kort oppstartstid. Å gjennomsøke 56 000 tester for kompatibilitet med ECMAScript tar omtrent 100 sekunder når det kjøres på en vanlig stasjonær PC med ett kjerner. Initialiseringen av runtime tar under 300 mikrosekunder;
  • Nesten full støtte for spesifikasjonen ES2019 og full støtte for applikasjonen «B», som definerer komponenter for kompatibilitet med gamle web-applikasjoner;
  • Full gjennomføring av alle tester fra ECMAScript Test Suite;
  • Støtte for kompilering av JavaScript-kode til kjørbare filer uten eksterne avhengigheter;
  • En søppeloppsamler basert på referansetelling uten syklisk utførelse av opprydning, som har oppnådd forutsigbart adferd og redusert minneforbruk;
  • Et sett med utvidelser for matematiske beregninger på JavaScript;
  • En kommandolinjeskall som støtter syntaksutheving for kode;
  • Et kompakt standardbibliotek med innpakninger over C-biblioteket.

Prosjektet utvikler også tre tilknyttede C-biblioteker, brukt i QuickJS og egnet for separat bruk:

  • libregexp — en rask implementering av regulære uttrykk, fullt kompatible med spesifikasjonen JavaScript ES 2019;
  • libunicode — et kompakt bibliotek for arbeid med Unicode;
  • libbf — en implementering av flyttallsoperasjoner av vilkårlig presisjon og transzendentalfunksjoner med nøyaktig avrunding.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster