Itusilẹ ti iru ẹrọ JavaScript ẹgbẹ olupin Node.js 16.0

Состоялся релиз 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 дней.

Awọn ilọsiwaju akọkọ:

  • Движок 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.

Jẹ ki a ranti pe pẹpẹ Node.js le ṣee lo mejeeji fun atilẹyin ẹgbẹ olupin ti awọn ohun elo wẹẹbu ati fun ṣiṣẹda alabara lasan ati awọn eto nẹtiwọọki olupin. Lati faagun iṣẹ ṣiṣe ti awọn ohun elo fun Node.js, akojọpọ nla ti awọn modulu ti pese, ninu eyiti o le wa awọn modulu pẹlu imuse HTTP, SMTP, XMPP, DNS, FTP, IMAP, awọn olupin POP3 ati awọn alabara, awọn modulu fun iṣọpọ pẹlu orisirisi awọn ilana wẹẹbu, WebSocket ati Ajax handlers , awọn asopọ si DBMS (MySQL, PostgreSQL, SQLite, MongoDB), awọn ẹrọ awoṣe, awọn ẹrọ CSS, awọn imuse ti awọn algorithms cryptographic ati awọn ọna ṣiṣe aṣẹ (OAuth), XML parsers.

Lati rii daju sisẹ ti nọmba nla ti awọn ibeere ti o jọra, Node.js nlo awoṣe ipaniyan koodu asynchronous ti o da lori mimu iṣẹlẹ ti kii ṣe idilọwọ ati asọye ti awọn olutọju ipe. Awọn ọna ti a ṣe atilẹyin fun awọn asopọ pọpọ jẹ epoll, kqueue, /dev/poll, ati yan. Fun multixing asopọ, ile-ikawe libuv ti lo, eyiti o jẹ afikun fun libev lori awọn eto Unix ati IOCP lori Windows. Ile-ikawe libeio ni a lo lati ṣẹda adagun okun, ati c-ares ti ṣepọ lati ṣe awọn ibeere DNS ni ipo ti kii ṣe idinamọ. Gbogbo awọn ipe eto ti o fa idinamọ ni a ṣe ninu adagun okun ati lẹhinna, bii awọn oluṣakoso ifihan agbara, gbe abajade iṣẹ wọn pada nipasẹ paipu ti a ko darukọ (paipu). Awọn ipaniyan ti koodu JavaScript ti pese nipasẹ lilo ẹrọ V8 ti o dagbasoke nipasẹ Google (ni afikun, Microsoft n ṣe agbekalẹ ẹya Node.js pẹlu ẹrọ Chakra-Core).

Ni ipilẹ rẹ, Node.js jẹ iru si Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, ati imuse iṣẹlẹ iṣẹlẹ Tcl, ṣugbọn iṣẹlẹ iṣẹlẹ ni Node.js ti wa ni pamọ lati ọdọ olupilẹṣẹ ati ki o jọmọ mimu iṣẹlẹ ni ohun elo wẹẹbu nṣiṣẹ ni browser. Nigbati o ba kọ awọn ohun elo fun node.js, o nilo lati ṣe akiyesi awọn pato ti siseto-iṣẹlẹ, fun apẹẹrẹ, dipo ṣiṣe "var esi = db.query ("yan ...");" pẹlu idaduro fun ipari iṣẹ ati ṣiṣe atẹle ti awọn abajade, Node.js lo ilana ti ipaniyan asynchronous, ie. koodu naa ti yipada si "db.query ("yan ...", iṣẹ (abajade) {sisẹ abajade});", ninu eyiti iṣakoso yoo kọja lẹsẹkẹsẹ si koodu siwaju sii, ati pe abajade ibeere yoo ṣe ilana bi data ti de.

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

orisun: opennet.ru

Fi ọrọìwòye kun