Sortie de Node.js 10.0.0 avec le support officiel de N-API et OpenSSL 1.1.0
La version LTS de la série 10.x est prévue pour octobre 2018

Le , par Michael Guilloux, Chroniqueur Actualités
L'équipe Node.js vient d'annoncer la sortie de la version 10.0.0 de la plateforme JavaScript côté serveur, et la version LTS (Long Term Support) de la série 10.x, qui sera plus axée sur la stabilité et la sécurité, sera disponible en octobre 2018.

Node.js 10.x se concentre principalement sur des améliorations incrémentielles et est la première série de versions à prendre en charge OpenSSL 1.1.0. Il arrive aussi avec la version v6.6 du moteur JavaScript V8 de Google et inclut des améliorations dans divers domaines : performance, gestion des erreurs et diagnostics. Avec cette version, l'API Node.js (N-API) quitte son statut de fonctionnalité expérimentale pour être officiellement prise en charge.

N-API

N-API a été créé en collaboration avec Google, IBM, Intel, Microsoft, nearForm, NodeSource et des contributeurs individuels. Cette API permet aux modules natifs de s'exécuter sur une nouvelle version de Node.js sans recompilation. Cela affranchit donc les mainteneurs de packages d'avoir à mettre à jour ces dépendances et crée encore plus de stabilité.

N-API permet donc de réduire le coût de maintenance des modules natifs. Mais il vise aussi à réduire les frictions lors de la mise à niveau des versions Node.js dans les déploiements de production pour les consommateurs de modules. Pour augmenter l'utilité de cette fonctionnalité, N-API est également en train d'être porté vers Node.js version 8.x et 6.x et sera disponible dans leurs prochaines versions. N-API établit en outre les bases de l'ouverture de Node.js à de nouveaux environnements dans l'IoT, les mobiles et une variété de systèmes différents.

Support cryptographique modernisé

Comme nous l'avons annoncé d'entrée de jeu, Node.js 10.x est la première série de la plateforme JavaScript à se mettre à niveau vers OpenSSL version 1.1.0. Node.js peut maintenant étendre son support cryptographique au chiffrement ChaCha20 et à l'authentificateur Poly1305, qui sont très demandés. En effet, ils contribuent au paysage cryptographique moderne et élargissent les options disponibles pour l'utilisation des suites de chiffrement AEAD (Authenticated Encryption with Associated Data), que l'équipe Node.js considère comme « l'étalon-or » actuel pour la communication chiffrée sur le Web.

L'équipe OpenSSL s'apprête aussi à lancer sa version 1.1.1, dont la principale fonctionnalité est le support TLS 1.3. Publié récemment en tant que norme W3C, TLS 1.3 est une énorme avancée pour la sécurité du Web. Le passage de Node.js à OpenSSL 1.1.0 le met donc en position pour une mise à niveau vers OpenSSL 1.1.1, dont la sortie est prévue pour le mois prochain. Avant la version LTS, Node.js 10.x devrait donc déjà avoir le support de TLS 1.3.


Améliorations de la gestion des erreurs

Ici, Node.js 10.x fait de bons progrès dans l'adoption des codes d'erreur afin de faciliter la vérification cohérente des erreurs. Auparavant, toute modification d'un message d'erreur devait être différée jusqu'à la sortie de la prochaine version majeure de Node.js, alors que les versions majeures sont livrées tous les six mois. Aujourd'hui, avec l'utilisation de codes d'erreur, il sera possible de mettre à jour le texte d'un message d'erreur sans casser les applications (car les applications doivent utiliser le code d'erreur). Ces modifications ont commencé à être implémentées depuis Node.js 8.

Autres changements et améliorations

Le dernier V8 a été livré avec des améliorations de performances, y compris pour les promises et les générateurs asynchrones, qui profitent grandement aux performances des applications construites avec Node.js. Côté diagnostics, certaines améliorations ont également été apportées. Dans Node.js 10, il y a par exemple une visibilité accrue des problèmes de synchronisation et de performance dans le code utilisateur via de nouveaux événements de trace. De plus, une nouvelle API permet au code utilisateur d'activer et de désactiver les événements de trace à la demande au moment de l'exécution. Ce qui offre plus de flexibilité dans le diagnostic des problèmes dans les applications Node.js en cours d'exécution.

Entre autres changements, il est important de préciser que Node.js 10.0.0 est livré avec npm 5.6.x. Cependant, il est prévu que la série 10.x soit bientôt mise à jour vers la version 6 du gestionnaire de paquets Node.js publiée récemment. Notons que npm 6 a mis l'accent sur les performances, la stabilité et la sécurité, et d'après l'équipe Node.js, cette version offre des améliorations de performances allant jusqu'à 1700 % par rapport aux versions antérieures de npm.

Node.js 10.0.0 vient aussi avec de nouvelles fonctionnalités du langage JavaScript, entre autres changements. Les notes de versions fournissent une liste plus complète de ces changements. Rappelons enfin que cette version a été publiée pour les développeurs à des fins de tests et d'expérimentation. Elle n'est donc pas recommandée en production. Pour une utilisation en production, il est recommandé d'attendre la version LTS qui est plus stable et plus sécurisée.

Sources : Node.js Foundation, Notes de versions de Node.js 10.0.0

Et vous ?

Utilisez-vous Node.js ? Que pensez-vous des nouveautés de cette version ?
Quelles nouveautés ou améliorations appréciez-vous le plus ? Pourquoi ?
Qu'attendez-vous des prochaines versions ?

Voir aussi :

npm 6.0.0, le gestionnaire de paquets officiel de Node.js. passe en @latest, et se concentre désormais sur la sécurité
Un incident opérationnel a provoqué la disparition d'une centaine de paquets npm, l'équipe derrière le gestionnaire de paquets de Node.js s'explique
Node.js 8.9.0 LTS est disponible pour une utilisation en production et Node.js 9.0.0 à des fins de tests et d'expérimentation


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Marco46 Marco46 - Modérateur https://www.developpez.com
le 26/04/2018 à 19:38
Pour ceux qui l'ignorent il est possible d'ajouter node en dépendance d'un projet packagé avec npm et donc de tester très facilement une nouvelle version ou de jouer des tests contre un code source dans des versions de node différentes sans rentrer dans des configurations compliquées.

 
Contacter le responsable de la rubrique Accueil