پلتفرم Node.js 26.0.0 منتشر شد

Состоялся релиз Node.js 26.0.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 26.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js 26.x будет осуществляться до мая 2029 года. Сопровождение прошлой LTS-ветки Node.js 24.x будет осуществляться до 30 апреля 2028 года, а позапрошлой 22.x — до 30 апреля 2027 года. Сопровождение LTS-ветки 20.x прекращено 30 апреля 2026 года, а промежуточной ветки Node.js 25.x будет прекращено 1 июня 2026 года.

پیشرفت‌های اصلی:

  • Включён по умолчанию API Temporal, предлагающий альтернативный набор методов для работы с датами и временем. API позволяет манипулировать датами с учётом и без учёта часовых поясов, конвертировать время, форматировать вывод и выполнять арифметические операции со временем. Время может задаваться в независимом от часового пояса представлении (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), с привязкой к часовому поясу (Temporal.ZonedDateTime) и в эпохальном представлении (Temporal.Instant — число наносекунд с 1 января 1970 года).
  • Движок V8 обновлён до версии 14.6, применяемой в Chromium 146. Из улучшений по сравнению с прошлым выпуском Node.js отмечена возможность объединять несколько итераторов в один с помощью метода Iterator.concat(), а также реализация спецификации «upsert» для упрощения работы с коллекциями пар ключ/значение в JavaScript-объектах Map и WeakMap.
  • HTTP-клиент undici обновлён до ветки 8.x.
  • Удалён метод http.Server.prototype.writeHeader(), вместо которого следует использовать http.Server.prototype.writeHead().

پلت فرم Node.js می تواند هم برای نگهداری سرور برنامه های کاربردی وب و هم برای ایجاد برنامه های شبکه مشتری و سرور معمولی استفاده شود. برای گسترش کارایی اپلیکیشن ها برای Node.js، مجموعه بزرگی از ماژول ها تهیه شده است که در آن می توانید ماژول هایی با اجرای HTTP، SMTP، XMPP، DNS، FTP، IMAP، POP3 سرورها و کلاینت ها، ماژول هایی برای ادغام پیدا کنید. با چارچوب های مختلف وب، کنترل کننده های WebSocket و Ajax، رابط های DBMS (MySQL، PostgreSQL، SQLite، MongoDB)، موتورهای قالب، موتورهای CSS، پیاده سازی الگوریتم های رمزنگاری و سیستم های مجوز (OAuth)، تجزیه کننده های XML.

برای مدیریت تعداد زیادی درخواست همزمان، Node.js از یک مدل اجرای کد ناهمزمان مبتنی بر مدیریت رویدادهای غیر مسدودکننده و تعریف کنترل‌کننده‌های فراخوانی استفاده می‌کند. روش‌های پشتیبانی‌شده برای مالتی‌پلکس کردن اتصالات شامل epoll، kqueue، /dev/poll و select هستند. برای مالتی‌پلکس کردن اتصالات، از کتابخانه libuv استفاده می‌شود که مجموعه‌ای از libev در سیستم‌های یونیکس و IOCP در ویندوز است. کتابخانه libeio برای ایجاد یک مخزن نخ (thread pool) استفاده می‌شود و c-ares برای انجام کوئری‌های DNS در حالت غیر مسدودکننده (non-blocking) یکپارچه شده است. تمام فراخوانی‌های سیستمی مسدودکننده درون مخزن نخ اجرا می‌شوند و سپس، مانند کنترل‌کننده‌های سیگنال، نتیجه کار خود را از طریق یک لوله بدون نام بازمی‌گردانند.

Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8. По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python asyncio и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере.

منبع: opennet.ru