QuickJS - un moteur JavaScript léger développé par le fondateur de QEMU et FFmpeg

JavaScript

Mathématicien français Fabrice Bellard, qui a fondé les projets QEMU et FFmpeg et qui a également créé la formule la plus rapide pour calculer le nombre Pi et a développé le format d'image BPG.

Fabrice Bellard est mieux connu comme le développeur principal de QEMU (un émulateur qui émule diverses architectures matérielles) et Tiny C Compiler (tcc), un compilateur C très petit mais complet, initialement écrit pour gagner le «Concours international de code C obscurci».

Maintenant récemment a partagé au public la première version de son nouveau travail qui est en JavaScript et c'est un nouveau moteur appelé JavaScript QuickJS.

À propos de JavaScript QuickJS

Le moteur JavaScript QuickJS il est compact et conçu pour être intégré dans d'autres systèmes. Le code du projet Il est écrit en C et distribué sous la licence MIT. Une version de moteur compilée dans WebAssembly à l'aide d'Emscripten est également disponible et peut être exécutée dans les navigateurs.

L'implémentation JavaScript Il prend en charge la spécification ES2019, y compris les modules, les générateurs asynchrones et les proxys.

Dans le moteur JavaScript QuickJS les extensions mathématiques non standard facultatives pour JavaScript sont prises en charge, tels que les types BigInt et BigFloat, ainsi que la surcharge des opérateurs.

En termes de performances, QuickJS surpasse considérablement les analogues disponiblesPar exemple, dans le test bench-v8, le moteur XS a 35% d'avance, DukTape a plus que doublé, JerryScript trois fois et MuJS sept fois.

En plus de la bibliothèque pour intégrer le moteur dans l'application, le projet propose également l'interpréteur qjs, qui peut être utilisé pour exécuter du code JavaScript à partir de la ligne de commande.

En outre, le compilateur qjsc est disponible et est capable de générer des fichiers exécutables qui peuvent être exécutés séparément et que ceux-ci ne nécessitent pas de dépendances externes.

Des principales fonctionnalités du moteur JavaScript QuickJS les points suivants ressortent:

  • Compact et facile à intégrer dans d'autres projets. Le code ne comprend que quelques fichiers C qui ne nécessitent pas de dépendances externes pour la construction. Une application compilée simple prend environ 190 Ko
  • Très hautes performances et temps de démarrage rapides. Réussir 56 100 tests de compatibilité ECMAScript prend environ 300 secondes lors de l'exécution d'un bureau normal sur un noyau. L'initialisation du runtime prend moins de XNUMX microsecondes
  • Prise en charge presque complète de la spécification ES2019 et prise en charge complète de l'application "B", qui définit les composants pour la compatibilité avec les anciennes applications Web
  • Terminer le passage de tous les tests de la suite de tests ECMAScript
  • Prise en charge de la compilation de code Javascript dans des fichiers exécutables sans dépendances externes
  • Le garbage collector repose sur le comptage de références sans nettoyage cyclique, permettant un comportement prévisible et une consommation de mémoire réduite
  • Un ensemble d'extensions pour les calculs mathématiques dans le langage JavaScript
  • Un shell pour exécuter du code en mode ligne de commande, qui prend en charge la coloration contextuelle du code
  • Bibliothèque standard compacte sur bibliothèque C

En plus de cela, D'autre part, le projet développe également trois bibliothèques C parties liées impliquées dans QuickJS et adaptées à un usage individuel:

  1. freegexp : une petite bibliothèque de regex rapide conforme à la spécification JavaScript ES2019
  2. libunicode : une petite bibliothèque Unicode qui prend en charge la conversion de cas, la normalisation Unicode, les requêtes de script Unicode, les requêtes de catégorie générale Unicode et toutes les propriétés binaires Unicode
  3. libbf : Il s'agit également d'une petite bibliothèque qui implémente des opérations en virgule flottante IEEE 754 et des fonctions transcendantales avec arrondi exact. Il est conservé en tant que projet distinct.

Comment obtenir SavaScript QuickJS?

Le téléchargement du code source pour la compilation peut être effectué à partir de le lien suivant. Après l'installation, un Makefile est fourni pour compiler le moteur sous Linux ou Mac OS / X.

Dans le même lien, vous pouvez consulter la documentation QuickJS pour plus d'informations. Il fournit également des informations de référence montrant les performances de QuickJS avec le moteur V8 de Google et une comparaison entre celui-ci et d'autres outils de la même catégorie.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.