Rilaxx ta' JavaScript Node.js 16.0 min-naħa tas-server

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

Titjib ewlieni:

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

Ejjew infakkarkom li l-pjattaforma Node.js tista 'tintuża kemm għall-appoġġ tan-naħa tas-server tal-applikazzjonijiet tal-Web kif ukoll għall-ħolqien ta' programmi ordinarji tan-netwerk tal-klijenti u tas-server. Biex tespandi l-funzjonalità tal-applikazzjonijiet għal Node.js, ġiet ippreparata ġabra kbira ta 'moduli, li fiha tista' ssib moduli bl-implimentazzjoni ta 'HTTP, SMTP, XMPP, DNS, FTP, IMAP, servers u klijenti POP3, moduli għall-integrazzjoni b'diversi oqfsa tal-web, WebSocket u Ajax handlers, konnetturi għal DBMS (MySQL, PostgreSQL, SQLite, MongoDB), magni tal-mudelli, magni CSS, implimentazzjonijiet ta 'algoritmi kriptografiċi u sistemi ta' awtorizzazzjoni (OAuth), parsers XML.

Biex jiġi żgurat l-ipproċessar ta 'numru kbir ta' talbiet paralleli, Node.js juża mudell ta 'eżekuzzjoni ta' kodiċi asinkronu bbażat fuq l-immaniġġjar ta 'avvenimenti li ma jimblukkawx u d-definizzjoni ta' handlers ta 'callback. Metodi appoġġjati għall-konnessjonijiet multiplexing huma epoll, kqueue, /dev/poll, u select. Għall-multiplexing tal-konnessjoni, tintuża l-librerija libuv, li hija add-on għal libev fuq sistemi Unix u IOCP fuq Windows. Il-librerija libeio tintuża biex tinħoloq pool ta 'ħajt, u c-ares huwa integrat biex iwettaq mistoqsijiet DNS f'modalità mhux imblukkata. Is-sejħiet kollha tas-sistema li jikkawżaw l-imblukkar huma eżegwiti ġewwa l-pool tal-ħajt u mbagħad, bħal dawk li jimmaniġġjaw is-sinjali, jittrasferixxu r-riżultat tax-xogħol tagħhom lura permezz ta 'pajp (pajp) bla isem. L-eżekuzzjoni tal-kodiċi JavaScript hija pprovduta permezz tal-użu tal-magna V8 żviluppata minn Google (barra minn hekk, Microsoft qed tiżviluppa verżjoni ta 'Node.js bil-magna Chakra-Core).

Fil-qalba tiegħu, Node.js huwa simili għall-Perl AnyEvent, Ruby Event Machine, Python Twisted oqfsa, u l-implimentazzjoni tal-avvenimenti Tcl, iżda l-linja tal-avvenimenti f'Node.js hija moħbija mill-iżviluppatur u tixbaħ l-immaniġġjar tal-avvenimenti f'applikazzjoni tal-web li taħdem. fil-browser. Meta tikteb applikazzjonijiet għal node.js, trid tikkunsidra l-ispeċifiċitajiet tal-ipprogrammar mmexxi mill-avvenimenti, pereżempju, minflok ma tagħmel "var result = db.query ("select..");" bl-istennija għat-tlestija tax-xogħol u l-ipproċessar sussegwenti tar-riżultati, Node.js juża l-prinċipju ta 'eżekuzzjoni asinkronika, i.e. il-kodiċi jinbidel f'"db.query ("select..", funzjoni (riżultat) {proċessar tar-riżultat});", li fih il-kontroll jgħaddi istantanjament għal aktar kodiċi, u r-riżultat tal-mistoqsija jiġi pproċessat hekk kif tasal id-data.

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

Sors: opennet.ru

Żid kumment