Lancement de la plateforme JavaScript serveur Node.js 16.0

La version 16.0 de Node.js, une plateforme pour l'exĂ©cution d'applications rĂ©seau en JavaScript, a Ă©tĂ© publiĂ©e. Node.js 16.0 est classĂ© comme une version avec un support Ă  long terme, mais ce statut ne sera attribuĂ© qu'en octobre, aprĂšs sa stabilisation. Le support de Node.js 16.0 sera assurĂ© jusqu'en avril 2023. Le soutien de l'ancienne version LTS de Node.js 14.0 se poursuivra jusqu'en avril 2023, tandis que l'ancienne version LTS 12.0 prendra fin en avril 2022. Le soutien de la version LTS 10.0 sera arrĂȘtĂ© dans 10 jours.

Améliorations principales :

  • Le moteur V8 a Ă©tĂ© mis Ă  jour vers la version 9.0 (la version 8.6 a Ă©tĂ© utilisĂ©e dans Node.js 15), ce qui a permis d'introduire dans Node.js 16 des fonctionnalitĂ©s telles que la propriĂ©tĂ© 'indices' pour les expressions rĂ©guliĂšres (incluant un tableau des positions de dĂ©but et de fin des groupes de correspondances), la mĂ©thode Atomics.waitAsync (version asynchrone d'Atomics.wait), et le support de l'utilisation du mot-clĂ© await dans les modules au niveau supĂ©rieur. L'appel des fonctions a Ă©tĂ© accĂ©lĂ©rĂ© lorsque le nombre d'arguments passĂ©s ne correspond pas Ă  ceux dĂ©finis dans la fonction.
  • L'API Timers Promises a Ă©tĂ© stabilisĂ©e, fournissant un ensemble alternatif de fonctions pour travailler avec des minuteries, retournant des objets Promise, ce qui Ă©vite d'utiliser util.promisify(). import { setTimeout } from 'timers/promises'; async function run() { await setTimeout(5000); console.log('Hello, World!'); } run();
  • Une implĂ©mentation expĂ©rimentale de l'API Web Crypto a Ă©tĂ© ajoutĂ©e, destinĂ©e Ă  effectuer des opĂ©rations cryptographiques de base cĂŽtĂ© applications web, telles que la manipulation de hachages cryptographiques, la gĂ©nĂ©ration et la vĂ©rification de signatures numĂ©riques, le codage et le dĂ©codage de donnĂ©es utilisant diverses mĂ©thodes de chiffrement, ainsi que la gĂ©nĂ©ration de nombres alĂ©atoires cryptographiquement fiables. L'API comprend Ă©galement des fonctions pour gĂ©nĂ©rer et gĂ©rer des clĂ©s.
  • N-API (API pour le dĂ©veloppement d'extensions) a Ă©tĂ© mis Ă  jour vers la version 8.
  • Le passage Ă  une nouvelle version du gestionnaire de paquets NPM 7.10 a Ă©tĂ© effectuĂ©.
  • La mise en Ɠuvre de la classe AbortController, basĂ©e sur le Web API AbortController, qui permet d'annuler des signaux dans les API basĂ©s sur Promise, a Ă©tĂ© stabilisĂ©e.
  • Le support de la troisiĂšme version du format Source Map, utilisĂ© pour le mappage des modules gĂ©nĂ©rĂ©s, traitĂ©s ou empaquetĂ©s avec le code source original, a Ă©tĂ© stabilisĂ©.
  • Pour assurer la compatibilitĂ© avec les anciennes API Web, les mĂ©thodes buffer.atob(data) et buffer.btoa(data) ont Ă©tĂ© ajoutĂ©es.
  • La crĂ©ation de builds pour les nouveaux appareils Apple Ă©quipĂ©s de la puce ARM M1 a commencĂ©.
  • Sur la plateforme Linux, les exigences concernant la version du compilateur ont Ă©tĂ© relevĂ©es Ă  GCC 8.3.

Rappelons que la plateforme Node.js peut ĂȘtre utilisĂ©e tant pour le support serveur des applications Web que pour la crĂ©ation de programmes rĂ©seau classiques cĂŽtĂ© client et serveur. Pour Ă©tendre les fonctionnalitĂ©s des applications Node.js, une vaste collection de modules a Ă©tĂ© prĂ©parĂ©e, dans laquelle on peut trouver des modules avec des implĂ©mentations 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 la dĂ©finition de gestionnaires de rappel (callback). Il prend en charge plusieurs mĂ©thodes de multiplexage de connexions, telles que epoll, kqueue, /dev/poll et select. La bibliothĂšque libuv est utilisĂ©e pour le multiplexage de connexions, qui est une couche au-dessus de libev dans les systĂšmes Unix et de IOCP sous Windows. La crĂ©ation d'un pool de threads est gĂ©rĂ©e par la bibliothĂšque libeio, tandis que c-ares est intĂ©grĂ© pour exĂ©cuter des requĂȘtes DNS en mode non-bloquant. Tous les appels systĂšme bloquants sont exĂ©cutĂ©s dans le pool de threads et, comme les gestionnaires de signaux, transmettent leurs rĂ©sultats via un canal anonyme (pipe). L'exĂ©cution de code JavaScript est assurĂ©e par l'utilisation du moteur V8 dĂ©veloppĂ© par Google (Microsoft dĂ©veloppe Ă©galement 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 des Ă©vĂ©nements en Tcl, mais la boucle d'Ă©vĂ©nements dans Node.js est cachĂ©e par le dĂ©veloppeur et rappelle le traitement des Ă©vĂ©nements dans une application web fonctionnant dans un navigateur. Lors de l'Ă©criture d'applications pour Node.js, il est nĂ©cessaire de prendre en compte les particularitĂ©s de la programmation orientĂ©e Ă©vĂ©nements, par exemple, au lieu d'exĂ©cuter « var result = db.query('select..'); » en attendant la fin du traitement et le traitement des rĂ©sultats, Node.js utilise le principe d'exĂ©cution asynchrone, c'est-Ă -dire que le code est transformĂ© en « db.query('select..', function (result) { traitement du rĂ©sultat }); », permettant un transfert immĂ©diat de contrĂŽle vers le code suivant, tandis que le rĂ©sultat de la requĂȘte sera traitĂ© Ă  mesure que les donnĂ©es arrivent.

Il convient également de noter que la société Deno, fondée par le créateur de Node.js pour le développement de la nouvelle plateforme Deno, a reçu un investissement de 4,9 millions de dollars. Par sa nature, Deno est similaire à Node.js, mais tente de corriger les erreurs conceptuelles commises dans l'architecture de Node.js et d'offrir aux utilisateurs un environnement plus sécurisé. Il est signalé que les solutions commerciales de Deno seront basées sur des produits entiÚrement ouverts, et le modÚle Open Core avec une fonctionnalité payante distincte est perçu comme inacceptable pour la plateforme Deno.

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