The release of Node.js 26.0.0 has occurred, a platform for running network applications in JavaScript. Node.js 26.0 is assigned to the long-term support branches, but this status will be granted only in October, after stabilization. Support for Node.js 26.x will be provided until May 2029. The previous LTS branch Node.js 24.x will be supported until April 30, 2028, and the one before that 22.x until April 30, 2027. Support for the LTS branch 20.x ended on April 30, 2026, and the intermediate branch Node.js 25.x will be discontinued on June 1, 2026.
Key improvements:
- The Temporal API is enabled by default, offering an alternative set of methods for working with dates and times. The API allows for date manipulation with or without time zones, time conversion, output formatting, and performing arithmetic operations with time. Time can be set in a time zone-independent representation (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), time zone-bound (Temporal.ZonedDateTime), and in epoch representation (Temporal.Instant — the number of nanoseconds since January 1, 1970).
- The V8 engine has been updated to version 14.6, used in Chromium 146. Improvements compared to the last Node.js release include the ability to combine multiple iterators into one using the Iterator.concat() method, as well as the implementation of the 'upsert' specification to simplify working with collections of key/value pairs in JavaScript Map and WeakMap objects.
- The HTTP client undici has been updated to the 8.x branch.
- The method http.Server.prototype.writeHeader() has been removed; instead, use http.Server.prototype.writeHead().
The Node.js platform can be used for both server-side support of web applications and for creating standard client and server network applications. A large collection of modules has been prepared to extend the functionality of Node.js applications, where modules with implementations can be found. servers and clients for HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modules for integration with various web frameworks, WebSocket and Ajax handlers, connectors to databases (MySQL, PostgreSQL, SQLite, MongoDB), templating engines, CSS engines, implementations of cryptographic algorithms and authorization systems (OAuth), XML parsers.
To handle a large number of simultaneous requests, Node.js employs an asynchronous model for code execution based on event-driven, non-blocking I/O and callback handlers. Multiplexing connections is supported by methods such as epoll, kqueue, /dev/poll, and select. The library used for connection multiplexing is libuv, which is a layer over libev on Unix systems and over IOCP on Windows. The thread pool is managed using the libeio library, and for non-blocking DNS queries, c-ares is integrated. All system calls that block are executed within the thread pool and then, like signal handlers, pass their results back through an unnamed pipe.
Execution of JavaScript code is ensured through the use of the V8 engine developed by Google. Essentially, Node.js is similar to the Perl AnyEvent frameworks, Ruby Event Machine, Python asyncio, and event handling implementation in Tcl, but the event loop in Node.js is hidden from the developer and resembles event handling in web applications running in a browser.
Source: opennet.ru
