Servilflanka JavaScript Node.js 16.0 eldono

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

Ĉefaj plibonigoj:

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

Ni memoru, ke la platformo Node.js povas esti uzata kaj por servilflanka subteno de Retaj aplikaĵoj kaj por krei ordinarajn klientajn kaj servilojn retajn programojn. Por vastigi la funkciecon de aplikoj por Node.js, granda kolekto de moduloj estis preparita, en kiuj vi povas trovi modulojn kun la efektivigo de HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3-serviloj kaj klientoj, moduloj por integriĝo. kun diversaj retaj kadroj, WebSocket kaj Ajax-traktiloj, konektiloj al DBMS (MySQL, PostgreSQL, SQLite, MongoDB), ŝablonaj motoroj, CSS-motoroj, efektivigoj de kriptografiaj algoritmoj kaj rajtigaj sistemoj (OAuth), XML-analiziloj.

Por certigi la prilaboradon de granda nombro da paralelaj petoj, Node.js uzas nesinkronan kodan ekzekutmodelon bazitan sur ne-bloka evento-traktado kaj la difino de revokaj pritraktiloj. Subtenataj metodoj por multipleksaj konektoj estas epoll, kqueue, /dev/poll, kaj select. Por koneksa multipleksado, la biblioteko libuv estas uzata, kiu estas aldonaĵo por libev ĉe Unikso-sistemoj kaj IOCP ĉe Vindozo. La biblioteko libeio estas uzata por krei fadenan naĝejon, kaj c-ares estas integrita por fari DNS-demandojn en ne-bloka reĝimo. Ĉiuj sistemvokoj kiuj kaŭzas blokadon estas ekzekutitaj ene de la fadena naĝejo kaj tiam, kiel signaltraktantoj, translokigas la rezulton de sia laboro reen tra nenomita pipo (pipo). La ekzekuto de JavaScript-kodo estas provizita per la uzo de la V8-motoro evoluigita de Guglo (krome, Microsoft disvolvas version de Node.js kun la Chakra-Core-motoro).

En ĝia kerno, Node.js estas simila al la Perl AnyEvent, Ruby Event Machine, Python Twisted kadroj, kaj la Tcl-okazaĵefektivigo, sed la eventa buklo en Node.js estas kaŝita de la programisto kaj similas evento-traktadon en TTT-aplikaĵo funkcianta. en retumilo. Kiam vi verkas aplikaĵojn por node.js, vi devas konsideri la specifaĵojn de okazaĵa programado, ekzemple, anstataŭ fari "var result = db.query ("select..");" kun atendado de fino de laboro kaj posta prilaborado de rezultoj, Node.js uzas la principon de nesinkrona ekzekuto, t.e. la kodo estas transformita en "db.query ("elekto..", funkcio (rezulto) {rezulta prilaborado});", en kiu kontrolo tuj pasos al plia kodo, kaj la demandrezulto estos prilaborita kiam datumoj alvenas.

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

fonto: opennet.ru

Aldoni komenton