QuickJS - een lichtgewicht JavaScript-engine ontwikkeld door de oprichter van QEMU en FFmpeg

JavaScript

Franse wiskundige Fabrice Bellard, die de projecten QEMU en FFmpeg oprichtte en ook de snelste formule voor het berekenen van het Pi-getal creëerde en het BPG-afbeeldingsformaat ontwikkelde.

Fabrice Bellard is vooral bekend als de hoofdontwikkelaar van QEMU (een emulator die verschillende hardware-architecturen emuleert) en Tiny C Compiler (tcc), een zeer kleine maar uitgebreide C-compiler, oorspronkelijk geschreven om de "International Obfuscated C Code Contest" te winnen.

Nu onlangs deelde de eerste versie van zijn nieuwe werk aan het publiek die in JavaScript is en dit is een nieuwe engine genaamd JavaScript QuickJS.

Over JavaScript QuickJS

De QuickJS JavaScript-engine het is compact en ontworpen om in andere systemen te worden geïntegreerd. De projectcode Het is geschreven in C en gedistribueerd onder de MIT-licentie. Er is ook een engine-build beschikbaar die is gecompileerd in WebAssembly met Emscripten en die geschikt is om in browsers te worden uitgevoerd.

De JavaScript-implementatie ondersteunt de ES2019-specificatie, inclusief modules, asynchrone generatoren en proxy's.

In de QuickJS JavaScript-engine optionele niet-standaard wiskundige extensies voor JavaScript worden ondersteund, zoals de typen BigInt en BigFloat, evenals overbelasting door de operator.

Qua prestaties presteert QuickJS aanzienlijk beter dan beschikbare analogenIn de bench-v8-test loopt de XS-engine bijvoorbeeld 35% voor, DukTape meer dan verdubbeld, JerryScript drie keer en MuJS zeven keer.

Naast de bibliotheek om de engine in de applicatie te integreren, het project biedt ook de qjs-tolk, die kan worden gebruikt om JavaScript-code vanaf de opdrachtregel uit te voeren.

Bovendien heeft de qjsc-compiler is beschikbaar en kan uitvoerbare bestanden uitvoeren die afzonderlijk kunnen worden uitgevoerd en dat deze geen externe afhankelijkheden vereisen.

Van de belangrijkste kenmerken van de QuickJS JavaScript-engine de volgende punten vallen op:

  • Compact en gemakkelijk te integreren in andere projecten. De code bevat slechts een paar C-bestanden waarvoor geen externe afhankelijkheden nodig zijn om te bouwen. Een eenvoudige gecompileerde applicatie kost ongeveer 190 Kb
  • Zeer hoge prestaties en snelle opstarttijden. Het passeren van 56 ECMAScript-compatibiliteitstests duurt ongeveer 100 seconden bij het draaien van een normale desktop op een kernel. Runtime-initialisatie duurt minder dan 300 microseconden
  • Bijna volledige ondersteuning voor de ES2019-specificatie en volledige ondersteuning voor de "B" -toepassing, die de componenten definieert voor compatibiliteit met oudere webtoepassingen
  • Voltooi de passage van alle tests van de ECMAScript Test Suite
  • Ondersteuning voor het compileren van Javascript-code in uitvoerbare bestanden zonder externe afhankelijkheden
  • De garbage collector vertrouwt op het tellen van referenties zonder een cyclische opschoning uit te voeren, waardoor voorspelbaar gedrag en minder geheugengebruik mogelijk is
  • Een set uitbreidingen voor wiskundige berekeningen in de JavaScript-taal
  • Een shell voor het uitvoeren van code in de opdrachtregelmodus, die het accentueren van contextuele code ondersteunt
  • Compacte standaardbibliotheek over C-bibliotheek

Daarnaast Anderzijds ontwikkelt het project ook drie C-bibliotheken verbonden partijen betrokken bij QuickJS en geschikt voor individueel gebruik:

  1. gratisexp: een kleine en snelle regex-bibliotheek die voldoet aan de JavaScript ES2019-specificatie
  2. libunicode: een kleine Unicode-bibliotheek die case-conversie, Unicode-normalisatie, Unicode-scriptverzoeken, algemene Unicode-categoriequery's en alle binaire Unicode-eigenschappen ondersteunt
  3. libbf: Dit is ook een kleine bibliotheek die IEEE 754 drijvende-kommabewerkingen en transcendentale functies implementeert met exacte afronding. Het wordt als een apart project bewaard.

Hoe SavaScript QuickJS te krijgen?

Het downloaden van de broncode voor compilatie kan worden gedaan vanaf de volgende link​ Na installatie wordt een Makefile meegeleverd om de engine op Linux of Mac OS / X te compileren.

In dezelfde link kunt u de QuickJS-documentatie raadplegen voor meer informatie. Het biedt ook benchmarkinformatie over de QuickJS-prestaties met de V8-motor van Google en een vergelijking tussen deze en andere tools in dezelfde categorie.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.