Désormais disponible, Node.js 20, la dernière version du populaire moteur d'exécution JavaScript introduit un modèle de permissions pour restreindre l'accès aux ressources pendant l'exécution. Ce mécanisme expérimental doit être activé à l'aide d'un flag spécial. Avec le modèle de permission expérimental de Node.js, les développeurs peuvent restreindre l'accès à des ressources spécifiques, notamment le système de fichiers, les processus enfants et les threads de travail. Ils peuvent utiliser les permissions pour empêcher les applications d'accéder à des données sensibles, de les modifier ou d'exécuter du code potentiellement dangereux. L'API pour cette capacité existe derrière le flag --experimental-permission. Toujours dans Node.js 20, les crochets de chargement de modules ECMAScript personnalisés s'exécutent maintenant sur un thread dédié, isolé du thread principal. Cette séparation crée un champ d'application distinct pour les chargeurs et garantit l'absence de contamination croisée entre les chargeurs et le code de l'application.
Autres nouveautés et changements de Node.js 20 :
- Les binaires de Node.js 20 pour Arm64 Windows sont disponibles, ce qui permet une exécution native sur la plateforme.
- La fonction import.meta.resolve() renvoie désormais de manière synchrone, même s’il est toujours possible de définir les crochets resolve des chargeurs comme des fonctions asynchrones.
- Le module test_runner a été marqué comme stable et il est utilisable en production.
- Les arguments des fonctions de l'API Crypto Web sont dorénavant contraints et validés conformément à leurs définitions IDL Web, ce qui améliore l'interopérabilité avec d'autres implémentations de l'API.
- L'interface système WASI (WebAssembly System Interface) doit désormais être spécifiée.
- Le moteur V8 JavaScript/WebAssembly, mis à jour en version 11.3, bénéficie de nouvelles capacités de l'API JavaScript, notamment WebAssembly Tail Call, des méthodes qui modifient Array et TypedArray par copie, ainsi qu'un ArrayBuffer redimensionnable et un SharedArrayBuffer extensible.
- La dernière version de l'analyseur d'URL, Ada 2.0, apporte des améliorations significatives en termes de performances. Ada 2.0 a été intégré dans la base de code Node.js, ce qui permet à toutes les parties d'une application de bénéficier de meilleures performances.
Introduite le 18 avril, la version 20 de Node.js est accessible sur nodejs.org en tant que version « Current » avec les dernières fonctionnalités de la plateforme. Elle devrait entrer dans le statut LTS (Long-term support) de support à long terme le 24 octobre, ce qui garantit généralement des corrections de bogues pendant au moins 30 mois. Node.js 20 succède à la version Node.js 19, livrée en octobre dernier, qui améliorait le débit HTTP.