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