Se ha lanzado Node.js 26.0.0, una plataforma para ejecutar aplicaciones de red en JavaScript. Node.js 26.0 está designada como una rama de soporte a largo plazo (LTS), pero este estado no se asignará hasta octubre, después de su estabilización. Node.js 26.x tendrá soporte hasta mayo de 2029. Node.js 24.x, la rama LTS anterior, tendrá soporte hasta el 30 de abril de 2028, y 22.x, la anterior, tendrá soporte hasta el 30 de abril de 2027. El mantenimiento de la rama LTS 20.x finalizó el 30 de abril de 2026, y la rama intermedia Node.js 25.x finalizará el 1 de junio de 2026.
Principales mejoras:
- La API temporal está habilitada por defecto y ofrece un conjunto alternativo de métodos para trabajar con fechas y horas. Esta API permite manipular fechas con y sin tener en cuenta las zonas horarias, convertir horas, formatear la salida y realizar operaciones aritméticas con el tiempo. La hora se puede especificar en una representación independiente de la zona horaria (Temporal.PlainDate, Temporal.PlainTime, Temporal.PlainDateTime), con una referencia a la zona horaria (Temporal.ZonedDateTime) y en una representación de época (Temporal.Instant, que representa el número de nanosegundos transcurridos desde el 1 de enero de 1970).
- El motor V8 se ha actualizado a la versión 14.6, que se utiliza en Chromium 146. Las mejoras con respecto a la versión anterior de Node.js incluyen la capacidad de combinar varios iteradores en uno solo mediante el método Iterator.concat(), así como la implementación de la especificación "upsert" para simplificar el trabajo con colecciones de pares clave/valor en objetos JavaScript Map y WeakMap.
- El cliente HTTP undici se ha actualizado a la rama 8.x.
- Se ha eliminado el método http.Server.prototype.writeHeader(); en su lugar, debe utilizarse http.Server.prototype.writeHead().
La plataforma Node.js puede utilizarse tanto para el soporte de aplicaciones web del lado del servidor como para la creación de programas de red estándar del lado del cliente y del servidor. Para ampliar la funcionalidad de las aplicaciones Node.js, se ha preparado una amplia colección de módulos, incluyendo aquellos que implementan... servidores y clientes de HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, módulos para integración con diversos frameworks web, manejadores WebSocket y Ajax, conectores a DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motores de plantillas, motores CSS, implementaciones de algoritmos criptográficos y sistemas de autorización (OAuth), parsers XML.
Para manejar un gran número de solicitudes concurrentes, Node.js utiliza un modelo de ejecución de código asíncrono basado en el procesamiento de eventos no bloqueantes y manejadores de devolución de llamada. Los métodos de multiplexación de conexiones compatibles incluyen epoll, kqueue, /dev/poll y select. La multiplexación de conexiones utiliza la biblioteca libuv, que se basa en libev en sistemas Unix e IOCP en WindowsLa biblioteca libeio se utiliza para crear un grupo de subprocesos, y c-ares se integra para realizar consultas DNS en modo no bloqueante. Todas las llamadas al sistema bloqueantes se ejecutan dentro del grupo de subprocesos y, al igual que los manejadores de señales, devuelven sus resultados a través de una tubería sin nombre.
La ejecución del código JavaScript se realiza mediante el motor V8 de Google. Node.js es fundamentalmente similar al framework AnyEvent de Perl, la máquina de eventos de Ruby, el framework asyncio de Python y la implementación de eventos de Tcl. Sin embargo, el bucle de eventos de Node.js está oculto para el desarrollador y se asemeja al manejo de eventos en una aplicación web que se ejecuta en un navegador.
Fuente: opennet.ru
