Icala lomncedisi we JavaScript Node.js 16.0 ukukhululwa

Состоялся релиз Node.js 16.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 16.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 16.0 будет осуществляться до апреля 2023 года. Сопровождение прошлой LTS-ветки Node.js 14.0 продлится до апреля 2023 года, а позапрошлой LTS-ветки 12.0 до апреля 2022 года. Сопровождение LTS-ветки 10.0 будет прекращено через 10 дней.

Uphuculo oluphambili:

  • Движок V8 обновлён до версии 9.0 (в Node.js 15 использовался выпуск 8.6), что позволило реализовать в Node.js 16 такие возможности, как свойство «indices» для регулярных выражений (включает массив с начальными и конечными позициями групп совпадений), метод Atomics.waitAsync (асинхронная версия Atomics.wait), поддержка использования ключевого слова await в модулях на верхнем уровне. Ускорен вызов функций, в ситуации, когда число переданных аргументов не соответствует определённым в функции параметрам.
  • Стабилизирован API Timers Promises, предоставляющий альтернативный набор функций для работы с таймером, возвращающих на выходе объекты Promise, что позволяет обойтись без использования util.promisify(). import { setTimeout } from ‘timers/promises’; async function run() { await setTimeout(5000); console.log(‘Hello, World!’); } run();
  • Добавлена экспериментальная реализация API Web Crypto, предназначенного для выполнения базовых криптографических операций на стороне web-приложений, таких как манипуляции с криптографическими хэшами, генерация и проверка цифровых подписей, кодирование и декодирования данных с использованием различных методов шифрования, формирование криптографически надёжных случайных чисел. В API также предусмотрены функции для генерации ключей и управления ими.
  • N-API (API для разработки дополнений) обновлён до версии 8.
  • Осуществлён переход на новый выпуск пакетного менеджера NPM 7.10.
  • Стабилизирована реализация класса AbortController, основанного на Web API AbortController и позволяющего отменять сигналы в выбранных API на основе Promise.
  • Стабилизирована поддержка третьей версии формата Source Map, используемого для сопоставления сгенерированных, обработанных или упакованных модулей с оригинальным исходным кодом.
  • Для совместимости с устаревшими Web API добавлены методы buffer.atob(data) и buffer.btoa(data).
  • Началось формирование сборок для новых устройств Apple, оснащённых ARM-чипом M1.
  • На платформе Linux требования к версии компилятора подняты до GCC 8.3.

Masikhumbule ukuba iqonga leNode.js lingasetyenziselwa zombini inkxaso yecala leseva yezicelo zeWebhu kunye nokudala umxhasi oqhelekileyo kunye neenkqubo zenethiwekhi yeseva. Ukwandisa ukusebenza kwezicelo zeNode.js, ingqokelela enkulu yeemodyuli ilungisiwe, apho unokufumana iimodyuli kunye nokuphunyezwa kweHTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 iiseva kunye nabaxhasi, iimodyuli zokudibanisa. kunye nezakhelo ezahlukeneyo zewebhu, iWebSocket kunye ne-Ajax handlers , izixhumi kwi-DBMS (MySQL, PostgreSQL, SQLite, MongoDB), iinjini zetemplate, iinjini zeCSS, ukuphunyezwa kwe-cryptographic algorithms kunye neenkqubo zokugunyazwa (OAuth), ii-XML parsers.

Ukuqinisekisa ukusetyenzwa kwenani elikhulu lezicelo ezihambelanayo, i-Node.js isebenzisa imodeli yokwenziwa kwekhowudi engahambelaniyo esekwe kulawulo lwesiganeko esingavaliyo kunye nenkcazo yabaphathi be-callback. Iindlela ezixhaswayo zoqhagamshelo lokuphinda-phinda yi epoll, kqueue, /dev/poll, kwaye ukhethe. Ukuphinda-phinda uqhagamshelo, ilayibrari ye-libuv iyasetyenziswa, eyongezo ye-libev kwiinkqubo ze-Unix kunye ne-IOCP kwi-Windows. Ilayibrari ye-libeio isetyenziselwa ukwenza i-pool pool, kwaye i-c-ares idityaniswe ukwenza imibuzo ye-DNS kwimodi yokungathinteli. Zonke iifowuni zesistim ezibangela ukuvalwa ziphunyezwa ngaphakathi kwiphuli yentambo kwaye emva koko, njengabaphangi beempawu, bagqithisele iziphumo zomsebenzi wabo ngombhobho ongachazwanga gama (umbhobho). Ukuphunyezwa kwekhowudi yeJavaScript inikezelwa ngokusetyenziswa kwe-injini ye-V8 ephuhliswe yiGoogle (ukongeza, iMicrosoft iphuhlisa inguqulelo yeNode.js nge-injini ye-Chakra-Core).

Kwisiseko sayo, i-Node.js ifana nePerl AnyEvent, i-Ruby Event Machine, i-Python Twisted frameworks, kunye nokuphunyezwa kwesiganeko se-Tcl, kodwa i-loop yesiganeko kwi-Node.js ifihliwe kumphuhlisi kwaye ifana nokusingatha umcimbi kwisicelo sewebhu esisebenzayo. kwibhrawuza. Xa ubhala izicelo ze-node.js, kufuneka uqwalasele iinkcukacha zeprogram eqhutywa yisiganeko, umzekelo, endaweni yokwenza "var result = db.query("select..");" ngokulinda ukugqitywa komsebenzi kunye nokuqhutyelwa okulandelayo kweziphumo, i-Node.js isebenzisa umgaqo wokwenziwa kwe-asynchronous, i.e. ikhowudi iguqulwa ibe yi "db.query("select..", function (isiphumo) {result processing});", apho ulawulo luya kudlula ngokukhawuleza kwikhowudi eyongezelelweyo, kwaye umphumo wombuzo uya kucutshungulwa njengoko idatha ifika.

Дополнительно можно отметить, что компания Deno, основанная создателем Node.js для развития платформы нового поколения Deno, получила 4.9 млн долларов инвестиций. По своему назначению Deno напоминает Node.js, но пытается устранить концептуальные ошибки, допущенные в архитектуре Node.js, и предоставить пользователям более защищённое окружение. Отмечается, что бизнес-решения компании Deno будут строится на полностью открытых продуктах, а модель Open Core с выделением отдельной платной функциональности воспринимается как неприемлемая для платформы Deno.

umthombo: opennet.ru

Yongeza izimvo