La plateforme Node.js 25.0.0 a été publiée

La version 25.0.0 de Node.js, la plateforme pour l'exécution d'applications réseau en JavaScript, a été publiée. La version 25.0 de Node.js est considérée comme une version intermédiaire, qui sera maintenue pendant 7 mois (jusqu'en juin 2026). La stabilisation de la branche Node.js 24 sera achevée dans les prochains jours, et cette version recevra le statut LTS à la fin d'octobre, avec un support jusqu'en avril 2028. Le support des anciennes versions LTS de Node.js 22.x et 20.x se poursuivra jusqu'en avril 2027 et 2026, respectivement.

Améliorations principales :

  • Le moteur V8 a été mis à jour vers la version 14.1, utilisée dans Chromium 141. Parmi les améliorations par rapport à la version précédente de Node.js, on note une augmentation significative des performances de la méthode JSON.stringify, l'optimisation de WebAssembly et JIT, ainsi que la mise en œuvre de méthodes pour la conversion entre Uint8Array et les données au format base64 ou en représentation hexadécimale.
  • Le modèle de permission, permettant de restreindre l'accès à certaines ressources lors de l'exécution, a été enrichi de l'option « —allow-net » pour permettre l'accès réseau (si l'option « —allow-net » n'est pas spécifiée, le lancement de Node.js en mode « —permission » renverra une erreur ERR_ACCESS_DENIED lors des tentatives d'opérations réseau).
  • Activé par défaut compatible avec les navigateurs L'API Web Storage, destinée au stockage permanent (classe localStorage) ou temporaire (classe sessionStorage) de données au format clé/valeur. L'étiquette de développement expérimental a été supprimée de l'API Web Storage.
  • La classe ErrorEvent a été ajoutée à la catégorie des classes globalement accessibles (utilisables sans import explicite), fournissant une interface compatible avec les navigateurs pour traiter les événements contenant des informations sur les erreurs.
  • Support API JSPI (JavaScript Promise Integration) pour WebAssembly, permettant d'accéder aux API Web asynchrones depuis du code exécuté de manière séquentielle, compilé en WebAssembly.
  • Ajout de l'option « NODE_COMPILE_CACHE_RELATIVE_PATH » pour un fonctionnement portable avec le cache des objets compilés. Dans ce mode, les hachages pour identifier les objets sont calculés à l'aide de chemins relatifs vers les fichiers, ce qui permet de déplacer et d'incorporer le contenu du répertoire de code avec le cache.
  • Ajout de la possibilité de profiler la charge CPU.
  • Le gestionnaire de paquets NPM a été mis à jour vers la version 11.6.2.
  • Ajout de la prise en charge de Python 3.14.
  • Les versions minimales prises en charge déclarées sont Clang 19 et Xcode 16.4.
  • Le support de l'objet SlowBuffer a été interrompu, précédemment déclaré obsolète en raison de problèmes de sécurité potentiels. Utilisez plutôt la méthode Buffer.allocUnsafeSlow().

La plateforme Node.js peut être utilisée à la fois pour le soutien serveur des applications Web et pour la création de programmes réseau clients et serveurs traditionnels. Pour étendre la fonctionnalité des applications Node.js, une grande collection de modules a été préparée, où l'on peut trouver des modules avec implémentation. serveurs et des clients HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, des modules pour l'intégration avec divers frameworks web, des gestionnaires WebSocket et Ajax, des connecteurs vers des SGBD (MySQL, PostgreSQL, SQLite, MongoDB), des moteurs de templates, des moteurs CSS, des implémentations d'algorithmes cryptographiques et des systèmes d'authentification (OAuth), des parseurs XML.

Pour traiter un grand nombre de requêtes simultanées, Node.js utilise un modèle d'exécution de code asynchrone basé sur le traitement d'événements en mode non-bloquant et sur la définition de gestionnaires de callback. Les méthodes de multiplexage de connexions telles que epoll, kqueue, /dev/poll et select sont prises en charge. La bibliothèque libuv, qui surmonte libev dans les systèmes Unix et IOCP dans Windows, est utilisée pour le multiplexage des connexions. La bibliothèque libeio est utilisée pour créer un pool de threads, et c-ares est intégré pour effectuer des requêtes DNS en mode non-bloquant. Tous les appels système qui provoquent un blocage sont exécutés à l'intérieur du pool de threads et, comme les gestionnaires de signaux, transmettent le résultat de leur travail via un canal anonyme (pipe).

L'exécution du code JavaScript est assurée par le moteur V8 développé par Google (en outre, Microsoft développe une version de Node.js avec le moteur Chakra-Core). En essence, Node.js ressemble aux frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted et à l'implémentation d'événements en Tcl, mais la boucle d'événements dans Node.js est cachée du développeur et rappelle le traitement d'événements dans une application web fonctionnant dans un navigateur.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster