Ce nouveau moteur JavaScript n'a besoin que de 10 Ko de RAM
Agence web » Actualités du digital » Ce nouveau moteur JavaScript n'a besoin que de 10 Ko de RAM

Ce nouveau moteur JavaScript n'a besoin que de 10 Ko de RAM

Même si JavaScript a été initialement conçu pour les scripts dans les pages Web, il est désormais utilisé pour écrire des applications de bureau, des logiciels serveur et tout le reste. Désormais, cela pourrait devenir une option pour les logiciels sur les systèmes embarqués et les microcontrôleurs à faible mémoire, grâce au projet MicroQuickJS.

MicroQuickJS est un nouveau projet de Fabrice Bellard, qui a créé beaucoup d'autres projets open source, notamment QEMU, FFmpeg, le compresseur de données sans perte NNCP et l'émulateur JSLinux. Ce dernier effort est basé sur un autre de ses projets, QuickJS, qui est un moteur JavaScript minimal écrit en langage C.

L'objectif de MicroQuickJS est de compiler et d'exécuter du code JavaScript « en utilisant aussi peu que 10 Ko de RAM », le moteur entier ne nécessitant qu'environ 100 Ko de stockage ROM, y compris sa dépendance à la bibliothèque C. Il prend en charge un « sous-ensemble de JavaScript » proche d'ES5 (ECMAScript 2009), de sorte qu'il est peu probable que les fonctionnalités les plus récentes d'ES6 et au-delà, telles que les mots-clés let et const, les fonctions fléchées et les objets cartographiques, fonctionnent. Il est également plus strict qu'un moteur JavaScript classique et bloque certaines opérations sujettes aux erreurs ou inefficaces, comme les tableaux comportant des trous.

La documentation du projet explique : « Bien que MQuickJS partage beaucoup de code avec QuickJS, (ses) composants internes sont différents afin de consommer moins de mémoire. En particulier, il s'appuie sur un garbage collector de traçage, la VM n'utilise pas la pile CPU et les chaînes sont stockées en UTF-8. »

MicroQuickJS ne remplacera pas Node.js pour la plupart des projets, d'autant plus qu'il ne semble pas fournir de prise en charge réseau ni d'accès au système de fichiers de l'appareil. Cependant, cela pourrait être utile sur des appareils comme une carte Arduino ou un Raspberry Pi Pico, où les moteurs plus courants ne sont pas une option.

Qu'est-ce que Node.JS et à quoi sert-il ?

Si vous effectuez un quelconque développement Web, vous devrez probablement apprendre et écrire du JavaScript à un moment donné. Node est destiné à simplifier le développement d’applications Web en unifiant les langages côté serveur et client.

La documentation explique une partie de l'architecture interne du moteur, y compris un émulateur à virgule flottante si le processeur donné ne prend pas en charge cette fonctionnalité, et « presque aucune dépendance vis-à-vis de la bibliothèque C ». Même si les cas d’utilisation potentiels dans le monde réel sont limités, il s’agit d’une entreprise impressionnante.

Vous pouvez visiter le référentiel GitHub pour consulter le code, les instructions de compilation et d'analyse comparative, ainsi que plus d'informations sur le fonctionnement du moteur. Aucun binaire n'est disponible pour le moment, vous devrez donc le compiler vous-même si vous souhaitez l'essayer.

★★★★★