QuickJS - en lätt JavaScript-motor utvecklad av grundaren av QEMU och FFmpeg

JavaScript

Franske matematikern Fabrice Bellard, som grundade QEMU- och FFmpeg-projekten och som också skapade den snabbaste formeln för att beräkna talet Pi och utvecklade BPG-bildformatet.

Fabrice Bellard är det mest känd som huvudutvecklaren av QEMU (en emulator som emulerar olika hårdvaruarkitekturer) och Tiny C Compiler (tcc), en mycket liten men komplett C-kompilator, ursprungligen skriven för att vinna International Obfuscated C Code Contest.

nu nyligen delade den första versionen av sitt nya verk med allmänheten som är i JavaScript och detta är en ny JavaScript-motor som heter QuickJS.

Om JavaScript QuickJS

QuickJS JavaScript-motorn Den är kompakt och fokuserad på att integreras i andra system. Projektkoden Den är skriven i C och distribueras under MIT-licensen. En motorbyggd kompilerad i WebAssembly med Emscripten och lämplig för att köras i webbläsare är också tillgänglig.

JavaScript-implementeringen stöder ES2019-specifikationen, inklusive moduler, asynkrona generatorer och proxyservrar.

I QuickJS JavaScript-motorn valfria icke-standardiserade matematiska tillägg till JavaScript stöds, såsom BigInt- och BigFloat-typerna, samt operatörens överbelastning.

Genom prestanda överträffar QuickJS avsevärt tillgängliga analogerTill exempel i bänk-v8-testet är XS-motorn 35 % före, DukTape mer än fördubblad, JerryScript tre gånger och MuJS sju gånger.

Förutom biblioteket för att bädda in motorn i applikationen, projektet erbjuder också qjs-tolken, som kan användas för att köra JavaScript-kod från kommandoraden.

Dessutom, qjsc-kompilatorn är tillgänglig och kan mata ut körbara filer som kan köras separat och att dessa inte kräver externa beroenden.

Av huvudfunktionerna i QuickJS JavaScript-motorn följande punkter sticker ut:

  • Kompakt och lätt att integrera i andra projekt. Koden innehåller bara ett fåtal C-filer som inte kräver externa beroenden för att bygga. En enkel kompilerad applikation tar cirka 190 Kb
  • Mycket hög prestanda och snabba starttider. Att klara 56 tusen ECMAScript-kompatibilitetstester tar cirka 100 sekunder när en vanlig stationär dator körs på en kärna. Körtidsinitiering tar mindre än 300 mikrosekunder
  • Nästan fullt stöd för ES2019-specifikationen och fullt stöd för "B"-applikationen, som definierar komponenterna för kompatibilitet med äldre webbapplikationer
  • Fullständig genomgång av alla ECMAScript Test Suite-tester
  • Stöd för att kompilera Javascript-kod till körbara filer utan externa beroenden
  • Sopsamlaren förlitar sig på referensräkning utan att utföra cyklisk rensning, vilket möjliggjorde förutsägbart beteende och minskad minnesförbrukning
  • En uppsättning tillägg för matematiska beräkningar i JavaScript-språket
  • Ett skal för att köra kod i kommandoradsläge, som stöder kontextuell kodmarkering
  • Kompakt standardbibliotek ovanpå C-biblioteket

Utöver detta å andra sidan utvecklar projektet också tre C-bibliotek relaterade problem involverade i QuickJS och lämpliga för individuell användning:

  1. freegexp: ett litet och snabbt reguljärt uttrycksbibliotek som överensstämmer med ES2019 JavaScript-specifikationen
  2. libunicode: ett litet Unicode-bibliotek som stöder casekonvertering, Unicode-normalisering, Unicode-skriptförfrågningar, allmänna Unicode-kategorifrågor och alla binära Unicode-egenskaper
  3. libbf: Detta är också ett litet bibliotek som implementerar IEEE 754 flyttalsoperationer och transcendentala funktioner med exakt avrundning. Det upprätthålls som ett separat projekt.

Hur får man SavaScript QuickJS?

Du kan ladda ner källkoden för din kompilering från följande länk. Vid installationen tillhandahålls en Makefile för att kompilera motorn på Linux eller Mac OS/X.

I samma länk kan du konsultera QuickJS-dokumentationen för mer information. Den ger också benchmarkinformation som visar hur QuickJS presterar med Googles V8-motor och en jämförelse mellan den och andra verktyg i samma kategori.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.