Ir al contenido

El medio de los artesanos de la web lunes, 19 de octubre de 2026

MailStudio
Back-end

Node.js 24.22.0 suma API de criptografía, throttle/debounce nativos y un StatementSync que se cierra

La versión LTS 24.22.0 de Node.js incorpora API criptográficas avanzadas, utilidades throttle y debounce nativas y un cierre explícito para las sentencias SQLite.

La rama LTS «Krypton» de Node.js recibió el 14 de octubre de 2026 la versión 24.22.0, que incluye diecisiete cambios notables. El lote afecta al módulo crypto, a la API de SQLite integrada, a perf_hooks y al módulo util, con dos funciones muy esperadas como protagonistas: util.throttle y util.debounce.

El módulo crypto gana certificados y nuevos modos de cifrado

Cinco de los diecisiete cambios son de criptografía. crypto.parsePKCS12() permite ahora leer directamente un contenedor PKCS#12 (el formato .p12/.pfx que empaqueta un certificado y su clave privada) sin depender de una librería externa. También se añadió una API MAC genérica, junto con el descubrimiento dinámico de cifrados y funciones hash expuestos por los proveedores de OpenSSL. Los modos SIV y GCM-SIV se suman por fin a las API Cipher y Decipher, dos modos resistentes a la reutilización accidental de un nonce, un escenario que ya ha costado caro a más de una implementación de cifrado a nivel de aplicación.

Los modos SIV y GCM-SIV dependen del proveedor OpenSSL con el que se compiló el binario de Node.js utilizado. Antes de integrarlos en producción, comprobar crypto.getCiphers() en el entorno de destino evita un fallo silencioso en el despliegue.

util.throttle y util.debounce dejan de depender de librerías externas

Hasta ahora, limitar la frecuencia de una llamada (debounce) o acotar su tasa de ejecución (throttle) obligaba a instalar lodash o una microlibrería dedicada. Node.js 24.22.0 incorpora una implementación nativa de ambas en node:util, pensada para los scripts de servidor que necesitan frenar escrituras en disco, llamadas a una API externa o notificaciones repetidas.

import { throttle, debounce } from 'node:util';

const logMetrics = throttle(() => {
  console.log('snapshot de métricas enviado');
}, 5000);

const persistDraft = debounce((content) => {
  writeFileSync('draft.json', JSON.stringify(content));
}, 800);

onMetricTick(logMetrics);
onEditorChange(persistDraft);

SQLite: un cierre explícito para las sentencias preparadas

StatementSync.prototype.close() y StatementSync.prototype[Symbol.dispose]() entran en el módulo node:sqlite. Hasta ahora, las sentencias preparadas podían permanecer abiertas mientras durara el proceso; ahora pueden liberarse de forma explícita, o automáticamente mediante la sintaxis using del lenguaje, lo que simplifica la gestión de recursos en scripts de migración o tareas puntuales.

perf_hooks afina la observación de latencias

El módulo de medición de rendimiento recibe un nuevo histograma de ventana deslizante, SlidingWindowHistogram, además de una API de intervalo de confianza sobre la media (meanCI) y exportación/importación en formato CBOR para hacer circular histogramas entre procesos o servicios.

Con SlidingWindowHistogram, perf_hooks deja de conformarse con una media móvil: captura cómo evoluciona una latencia en el tiempo, no solo su valor medio durante toda la vida del proceso.

NovedadMóduloUso típico
crypto.parsePKCS12()node:cryptoCargar un certificado cliente .p12 sin librería externa
API MAC genéricanode:cryptoCalcular un código de autenticación de mensaje independiente de HMAC
Modos SIV / GCM-SIVnode:cryptoCifrado tolerante a la reutilización de nonce
util.throttle / util.debouncenode:utilLimitar la frecuencia de escrituras o llamadas de red
StatementSync.close() / Symbol.disposenode:sqliteLiberar una sentencia preparada de forma explícita
SlidingWindowHistogramnode:perf_hooksSeguir la evolución de una latencia en el tiempo

Esta versión menor ilustra una tendencia de fondo en la rama 24: incorporar al núcleo del runtime utilidades que la mayoría de los equipos iban a buscar antes a través de npm. Es el mismo movimiento que llevó a activar por defecto la API Temporal en Node.js 26, donde el proyecto optó por estandarizar en lugar de dejar que el ecosistema fragmentara la misma necesidad en decenas de paquetes competidores.

Lo que hay que recordar

Node.js 24.22.0 sigue siendo, en sentido estricto, una actualización menor (SEMVER-MINOR en casi todos los cambios), sin rupturas de compatibilidad previstas para las aplicaciones existentes. Los equipos que gestionan certificados de cliente, escriben scripts de limitación de frecuencia o se apoyan en SQLite embebido tienen ahora un motivo concreto para planificar la migración a esta línea LTS.

Lo que más me llama la atención de esta versión no es la criptografía, sino el dúo throttle/debounce: son dos funciones que he reimplementado o importado de lodash en prácticamente todos mis proyectos backend durante la última década. Verlas integradas en el runtime, con una semántica probada por el propio equipo de Node, es una línea de dependencia menos que auditar en cada proyecto de cliente. — Simon Janvier

Para profundizar: el detalle completo de los cambios de la versión 24.22.0 está disponible en el changelog oficial de la rama Node.js 24.

Compartir LinkedIn Bluesky Hacker News E-mail

Leer también