Node.js 8.0.0 est livré avec V8 5.8, une mise à jour significative du runtime JavaScript qui inclut des améliorations majeures en termes de performances. Pour l’équipe, le plus important pour les développeurs Node.js est le fait que V8 5.8 est garanti d’avoir une compatibilité ascendante ABI (interface binaire-programme) avec V8 5.9 et le prochain V8 6.0, ce qui contribuera à assurer la stabilité de l’écosystème natif Node.js. Pendant la durée de vie de Node.js 8, l’équipe a prévu de passer à la version 5.9 de V8, voire la version 6.0.

Le moteur V8 5.8 contribue également à la mise en place d’une transition en cours vers le nouveau pipeline du compilateur TurboFan + Ignition, qui promet d’apporter de nouvelles performances importantes pour toutes les applications Node.js. Bien qu’ils existaient dans les versions précédentes de V8, TurboFan et Ignition seront activés par défaut pour la première fois dans V8 5.9. Le nouveau pipeline du compilateur représente un changement tellement important que le Comité technique principal de Node.js (CTC) a choisi de reporter la version Node.js 8, initialement prévue pour avril, afin de mieux l’accueillir.

API Node.js (N-API)

Pour les développeurs Node.js qui utilisent ou créent des addons natifs, la nouvelle API expérimentale Node.js (N-API) est un avancement important par rapport aux Abstractions Natives existantes pour Node.js (nan) qui permettront de compiler les addons natifs une fois sur un système et utilisé dans plusieurs versions de Node.js.

En fournissant une nouvelle ABI de la machine virtuelle, il devient possible que les addons natifs fonctionnent non seulement sur plusieurs versions du runtime JavaScript V8, mais également sur le runtime Chakra-Core de Microsoft.

Le N-API est expérimental dans Node.js 8.0.0, donc des changements importants dans la mise en œuvre et l’API devraient être attendus. Les développeurs d’addons natifs sont encouragés à commencer à travailler avec l’API dès que possible et à fournir des commentaires qui seront nécessaires pour s’assurer que la nouvelle API répond aux besoins de l’écosystème.

Async_hooks

Le module async_hooks expérimental (anciennement async_wrap) a reçu une mise à niveau majeure dans 8.0.0. Cette API de diagnostic permet aux développeurs de surveiller le fonctionnement de la boucle d’événement Node.js, de suivre les demandes asynchrones et de gérer leur cycle de vie complet. Étant donné qu’il s’agit là d’un module expérimental, la documentation est encore incomplète.

L’analyseur d’URL WHATWG

Une API d’URL expérimentale mise en œuvre autour du WHATWG URL Standard a été ajoutée à Node.js 7.x l’année dernière et est toujours en cours de développement. L’équipe explique qu’à partir de la version Node.js 8.0.0, la nouvelle implémentation d’URL est désormais une API non expérimentale entièrement supportée dans Node.js. Voici un exemple d’utilisation.

Code :
1
2
3
const URL = require('url').URL;
 
const myUrl = new URL('/a/path', 'https://example.org/');

Cette nouvelle implémentation d’URL est très significative, car elle correspond à la mise en œuvre de l’URL et à l’API disponible dans les navigateurs Web modernes comme Chrome, Firefox, Edge et Safari, permettant au code d’utiliser les URL à partager entre les environnements.

Changements au niveau du Buffer

Un certain nombre de modifications importantes ont été apportées à l’API Buffer dans Node.js. La plus importante est le fait que l’appel du constructeur Buffer (num) obsolète (avec ou sans le mot-clé new) renverra une instance Buffer remplie de zéro. Les versions antérieures de Node.js renverraient la mémoire non initialisée, qui pourrait contenir des données potentiellement sensibles.

Dans Node.js 6.0.0, un nouvel ensemble de méthodes de construction Buffer a été introduit comme alternative à l’appel du constructeur Buffer (num) afin de résoudre un certain nombre de problèmes de sécurité et de convivialité. Le constructeur existant, cependant, est largement utilisé dans l’écosystème Node.js, ce qui rend impossible de le déprécier ou de le désactiver complètement sans causer de rupture importante.

Les nouvelles instances de Buffer (num) à zéro par défaut auront un impact significatif sur les performances. Les développeurs devraient passer à la nouvelle API Buffer.allocUnsafe (num) s’ils souhaitent attribuer des instances Buffer à une mémoire non initialisée.

Support

Node.js 8 est la prochaine version à entrer dans le support à long terme (LTS). Cela devrait se produire en octobre 2017. Une fois que Node.js 8 va transiter vers LTS, il recevra le nom de code Carbon.

LAISSER UN COMMENTAIRE