Публикувана е платформата Node.js 25.0.0

Издаден е Node.js 25.0.0, платформа за изпълнение на мрежови приложения на JavaScript. Node.js 25.0 е класифициран в междинните версии, чиято поддръжка ще продължи 7 месеца (до юни 2026 г.). В близките дни ще приключи стабилизацията на Node.js 24, която в края на октомври ще получи статус LTS и ще бъде поддържана до април 2028 г. Поддержката на предишните LTS версии Node.js 22.x и 20.x ще продължи до април 2027 г. и 2026 г. съответно.

Основни подобрения:

  • Двигателят V8 е обновен до версия 14.1, употребяван в Chromium 141. Значителни подобрения в сравнение с предишното издание на Node.js включват повишаване на производителността на метода JSON.stringify, оптимизация на WebAssembly и JIT, и реализация на методи за преобразуване между Uint8Array и данни в base64 формат или шестнадесетично представяне.
  • В механизма Permission Model, позволяващ ограничаване на достъпа до определени ресурси по време на изпълнение, е добавена опция „—allow-net“ за осигуряване на мрежов достъп (ако опцията „—allow-net“ не е зададена, стартирането на Node.js в режим „—permission“ ще генерира грешка ERR_ACCESS_DENIED при опит за изпълнение на мрежови операции).
  • Включен по подразбиране съвместим с браузерите API Web Storage, предназначено за постоянно (клас localStorage) или временно (клас sessionStorage) съхранение на данни във формат ключ/стойност. От API Web Storage е премахната етикета за експериментално разработване.
  • Класът ErrorEvent е прехвърлен в категорията на глобално достъпните (може да се използва без явен импорт), предоставящ браузерно-съвместим интерфейс за обработка на събития с информация за грешките.
  • За WebAssembly е добавена поддръжка на API JSPI (JavaScript Promise Integration), позволяваща достъп до асинхронни Web API от последователно изпълняван код, скомпилиран в WebAssembly.
  • Добавена е опция „NODE_COMPILE_CACHE_RELATIVE_PATH“ за преносима работа с кеша на скомпилираните обекти. В този режим хешовете за идентификация на обектите се изчисляват, използвайки относителни пътища към файла, което позволява преместването и вграждането на съдържанието на каталога с код заедно с кеша.
  • Добавена е възможност за профилиране на натоварването на CPU.
  • Мениджърът на пакети NPM е обновен до версия 11.6.2.
  • Добавена е поддръжка на Python 3.14.
  • Минимално поддържаните версии са обявени Clang 19 и Xcode 16.4.
  • Поддръжката на обекта SlowBuffer е прекратена, след като по-рано бе обявен за остарял поради потенциални проблеми със сигурността. Вместо SlowBuffer трябва да се използва методът Buffer.allocUnsafeSlow().

Платформата Node.js може да се използва както за сървърно поддържане на уеб приложения, така и за създаване на обикновени клиентски и сървърни мрежови програми. За разширяване на функционалността на приложенията за Node.js е подготвена голяма колекция от модули, в която може да се намерят модули с реализация на сървъри и клиенти за HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули за интеграция с различни уеб фреймворкове, обработчици на WebSocket и Ajax, свързващи модули за СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизатори, CSS движки, реализации на криптоалгоритми и системи за удостоверяване (OAuth), XML парсери.

За обработка на голям брой паралелни заявки, Node.js използва асинхронен модел на изпълнение на кода, основан на обработка на събития в ненарушаващ режим и определяне на callback обработчици. Поддържат се методи за мультиплексиране на съединения, като epoll, kqueue, /dev/poll и select. За мультиплексиране на съединения се използва библиотеката libuv, която е надстройка над libev в Unix системи и IOCP в Windows. За създаване на пул от потоци (thread pool) се използва библиотеката libeio, а за изпълнение на DNS заявки в ненарушаващ режим е интегриран c-ares. Всички системни повиквания, които предизвикват блокиране, се изпълняват в пула от потоци и след това, подобно на обработчици на сигнали, предават резултата от работата си обратно чрез безименен канал (pipe).

Изпълнението на JavaScript код се осигурява чрез използването на разработения от Google двигател V8 (допълнително Microsoft развива версия на Node.js с двигателя Chakra-Core). По същество Node.js е подобен на фреймворците Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацията на събития в Tcl, но цикълът на обработка на събития (event loop) в Node.js е скрит от разработчика и наподобява обработката на събития в уеб приложение, работещо в браузър.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster