Change8

v26.1.0

📦 node-jsView on GitHub →
18 features🐛 6 fixes🔧 15 symbols

Summary

This release introduces the experimental `node:ffi` module for native library interaction and brings numerous minor version updates across core modules like buffer, crypto, fs, and http, enhancing functionality and hardening security.

Migration Steps

  1. If using `node inspect`, be aware that runtime expression probes are now edit-free.
  2. If relying on `process.abort()` behavior upon `execve(2)` failure, note that it now throws an error instead.

✨ New Features

  • Introduced an experimental `node:ffi` module for loading dynamic libraries and calling native symbols from JavaScript. This requires the `--experimental-ffi` flag and potentially `--allow-ffi`.
  • Added `end` parameter to `buffer` methods (SEMVER-MINOR).
  • Added support for key data in `crypto.diffieHellman()` and cleanup of DH jobs (SEMVER-MINOR).
  • Implemented `crypto.randomUUIDv7()` (SEMVER-MINOR).
  • Added edit-free runtime expression probes to `node inspect` (SEMVER-MINOR).
  • Added `signal` option to `fs.stat()` (SEMVER-MINOR).
  • Exposed `frsize` field in `statfs` via `fs` module (SEMVER-MINOR).
  • Hardened `ClientRequest` options merge in `http` (SEMVER-MINOR).
  • Added `req.signal` to `IncomingMessage` in `http` (SEMVER-MINOR).
  • Process now throws on `execve(2)` failure instead of aborting (SEMVER-MINOR).
  • Allowed empty `--experimental-config-file` (SEMVER-MINOR).
  • Propagated destruction in `duplexPair` in `stream` (SEMVER-MINOR).
  • Added mock timeout API alignment to `test_runner` (SEMVER-MINOR).
  • Added mock-timers support for `AbortSignal.timeout` in `test_runner` (SEMVER-MINOR).
  • Added test order randomization support to `test_runner` (SEMVER-MINOR).
  • Added hex color support for text coloring in `util` (SEMVER-MINOR).
  • Added JWK support for ML-KEM and SLH-DSA key types in `crypto`.
  • Added build flag `--enable-all-experimentals`.

🐛 Bug Fixes

  • Fixed stale nested cycle memo entries in `assert` and `util`.
  • Fixed bugs related to the `end` parameter in `buffer.indexOf/lastIndexOf`.
  • Fixed cargo check when Temporal is disabled.
  • Fixed ffi dependency compilation.
  • Fixed stray debug string in LIEF defines.
  • Fixed unsigned conversion of 4-byte RSA publicExponent.

Affected Symbols