ArticleApplications & Développement
Avec Napa.js, Microsoft ajoute le multithreading à Node.js
En cours de développement, le runtime Napa.js permettra à Node.js d'offrir les performances et la rapidité du C++.

La version bêta du runtime Napa.js de Microsoft apporte le support du multithread à la plate-forme JavaScript côté serveur de Node.js. L’objectif est d’offrir la flexibilité du JavaScript avec la rapidité du C++. Selon Microsoft, l’ajout du multithreading à Node.js doit permettre au runtime Napa.js de gérer plus facilement les tâches gourmandes en calcul. Construit sur le même moteur d'exécution V8 de JavaScript que Node.js, Napa.js peut être intégré dans un processus hôte sans la dépendance Node.js. Il peut être installé via NPM à l’aide de la commande « npm install napajs ».
La Fondation Node.js, qui supervise le développement de Node.js, considère Napa.js comme un élément à part entière de l'écosystème Node.js, dans le sens où il résout un cas d’usage complémentaire de Node.js en fournissant un moyen d'exécuter des processus JavaScript multithread pour des calculs très exigeants en ressources. Napa.js dispose d'une architecture modulaire compatible Node.js, avec prise en charge du NPM. Il apporte une API pour le transport d'objets, le partage d'objets et des capacités de traitement asynchrones sur les threads JavaScript, ainsi qu'une API pour le logging des architectures « pluggables », la métrique et l'allocation de mémoire.
Avec Napa.js, Microsoft a l'objectif d'améliorer les performances grâce à la prise en charge d'un allocateur de mémoire enfichable et de réduire l'impact de la récupération de mémoire (garbage collection) sur la latence. L’installation prendra en charge des scénarios intégrés. La coopération entre les threads JavaScript inclut un workflow d'abstraction de haut niveau à travers les threads JavaScript qui pourrait faire l’objet d’un package séparé afin de permettre des transports enfichables. Le support de l'outil de débogage est inclus.


