Lanzamiento de la plataforma de servidores JavaScript Node.js 16.0

Se ha lanzado Node.js 16.0, una plataforma para ejecutar aplicaciones de red en JavaScript. Node.js 16.0 se clasifica como rama de soporte a largo plazo, aunque este estatus se otorgará solo en octubre, después de la estabilización. El soporte para Node.js 16.0 se mantendrá hasta abril de 2023. El mantenimiento de la anterior rama LTS Node.js 14.0 durará hasta abril de 2023, y la aún anterior rama LTS 12.0 hasta abril de 2022. El soporte para la rama LTS 10.0 se finalizará dentro de 10 días.

Principales mejoras:

  • El motor V8 se ha actualizado a la versión 9.0 (se utilizó la versión 8.6 en Node.js 15), lo que ha permitido implementar en Node.js 16 capacidades como la propiedad "indices" para expresiones regulares (que incluye un array con las posiciones inicial y final de los grupos de coincidencia), el método Atomics.waitAsync (versión asíncrona de Atomics.wait) y el soporte para usar la palabra clave await en módulos de nivel superior. Se ha acelerado la llamada a funciones cuando el número de argumentos pasados no coincide con los parámetros definidos en la función.
  • Se ha estabilizado la API Timers Promises, que proporciona un conjunto alternativo de funciones para trabajar con temporizadores, devolviendo objetos Promise, lo que evita el uso de util.promisify(). import { setTimeout } from 'timers/promises'; async function run() { await setTimeout(5000); console.log('¡Hola, Mundo!'); } run();
  • Se ha añadido una implementación experimental de la API Web Crypto, destinada a realizar operaciones criptográficas básicas en aplicaciones web, como manipulación de hash criptográficos, generación y verificación de firmas digitales, codificación y decodificación de datos utilizando diversos métodos de cifrado y generación de números aleatorios criptográficamente seguros. La API también incluye funciones para la generación y gestión de claves.
  • N-API (API para el desarrollo de complementos) se ha actualizado a la versión 8.
  • Se ha realizado la transición a la nueva versión del administrador de paquetes NPM 7.10.
  • Se ha estabilizado la implementación de la clase AbortController, basada en la API Web AbortController y que permite cancelar señales en APIs seleccionadas basadas en Promise.
  • Se ha estabilizado el soporte para la tercera versión del formato Source Map, utilizado para emparejar módulos generados, procesados o empaquetados con el código fuente original.
  • Para la compatibilidad con APIs Web obsoletas, se han añadido los métodos buffer.atob(data) y buffer.btoa(data).
  • Se ha iniciado la creación de versiones para nuevos dispositivos Apple equipados con el chip ARM M1.
  • En la plataforma Linux, se han elevado los requisitos de versión del compilador a GCC 8.3.

Recordemos que la plataforma Node.js puede ser utilizada tanto para el soporte del funcionamiento de aplicaciones web en el servidor como para la creación de programas de red para clientes y servidores. Para ampliar las funcionalidades de las aplicaciones de Node.js se ha preparado una gran colección de módulos, en la que se pueden encontrar módulos con implementaciones. servidores y clientes HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, módulos para integración con varios frameworks web, manejadores de WebSocket y Ajax, conectores a bases de datos (MySQL, PostgreSQL, SQLite, MongoDB), sistemas de plantillas, motores CSS, implementaciones de algoritmos criptográficos y sistemas de autorización (OAuth), analizadores XML.

Para garantizar el procesamiento de un gran número de solicitudes paralelas, Node.js utiliza un modelo asíncrono para la ejecución de código, basado en el manejo de eventos en modo no bloqueante y la definición de manejadores de callback. Se soportan métodos de multiplexión de conexiones como epoll, kqueue, \/dev\/poll y select. Para la multiplexión de conexiones se utiliza la biblioteca libuv, que es una capa superior a libev en sistemas Unix y a IOCP en Windows. Para crear un grupo de hilos se utiliza la biblioteca libeio, y para realizar consultas DNS en modo no bloqueante se integra c-ares. Todas las llamadas al sistema que causan bloqueo se llevan a cabo dentro del grupo de hilos y luego, al igual que los manejadores de señales, envían el resultado de su trabajo de vuelta a través de un canal anónimo (pipe). La ejecución de código JavaScript se garantiza mediante el uso del motor V8 desarrollado por Google (además, Microsoft desarrolla una variante de Node.js con el motor Chakra-Core).

En esencia, Node.js es similar a los frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted y la implementación de eventos en Tcl, pero el ciclo de manejo de eventos (event loop) en Node.js está oculto al desarrollador y se asemeja al manejo de eventos en una aplicación web ejecutándose en un navegador. Al escribir aplicaciones para Node.js, es necesario tener en cuenta la especificidad de la programación orientada a eventos, por ejemplo, en lugar de ejecutar "var result = db.query('select..');" esperando a que termine y luego procesar los resultados, Node.js utiliza el principio de ejecución asíncrona, es decir, el código se transforma en "db.query('select..', function (result) {procesar resultado});", donde el control se transfiere de inmediato al código siguiente, y el resultado de la consulta se procesará a medida que lleguen los datos.

Además, se puede señalar que la empresa Deno, fundada por el creador de Node.js para el desarrollo de la plataforma de nueva generación Deno, ha recibido 4.9 millones de dólares en inversiones. Deno es similar a Node.js en su propósito, pero intenta corregir los errores conceptuales cometidos en la arquitectura de Node.js y proporcionar a los usuarios un entorno más seguro. Se destaca que las soluciones empresariales de Deno se construirán sobre productos completamente abiertos, y el modelo Open Core que implica separar funcionalidades de pago se percibe como inaceptable para la plataforma Deno.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster