Skip to content

Commit 8fd02ef

Browse files
committed
2026-09-16, Version 26.9.0 (Current)
Notable changes: crypto: * (SEMVER-MINOR) add a generic MAC API (Filip Skokan) #65553 * (SEMVER-MINOR) discover ciphers from OpenSSL providers (Filip Skokan) #65484 * (SEMVER-MINOR) discover hashes from OpenSSL providers (Filip Skokan) #65484 ffi: * (SEMVER-MINOR) enable module by default (Matteo Collina) #65475 lib: * (SEMVER-MINOR) implement node:bench (James M Snell) #65606 perf_hooks: * (SEMVER-MINOR) implement Histogram meanCI API (James M Snell) #65606 * (SEMVER-MINOR) add CBOR export/import for histogram exchange (James M Snell) #65434 src,lib: * (SEMVER-MINOR) implement experimental DTLS API (James M Snell) #63182 vfs: * (SEMVER-MINOR) integrate with CJS and ESM module loaders (Matteo Collina) #63653 worker: * (SEMVER-MINOR) add support for Web Workers (Aviv Keller) #64894 PR-URL: #65881
1 parent 0539e90 commit 8fd02ef

15 files changed

Lines changed: 342 additions & 111 deletions

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ release.
4141
</tr>
4242
<tr>
4343
<td valign="top">
44-
<b><a href="doc/changelogs/CHANGELOG_V26.md#26.8.2">26.8.2</a></b><br/>
44+
<b><a href="doc/changelogs/CHANGELOG_V26.md#26.9.0">26.9.0</a></b><br/>
45+
<a href="doc/changelogs/CHANGELOG_V26.md#26.8.2">26.8.2</a><br/>
4546
<a href="doc/changelogs/CHANGELOG_V26.md#26.8.1">26.8.1</a><br/>
4647
<a href="doc/changelogs/CHANGELOG_V26.md#26.8.0">26.8.0</a><br/>
4748
<a href="doc/changelogs/CHANGELOG_V26.md#26.7.0">26.7.0</a><br/>

doc/api/bench.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Benchmark runner
22

3-
<!--introduced_in=REPLACEME-->
3+
<!--introduced_in=v26.9.0-->
44

55
<!-- YAML
6-
added: REPLACEME
6+
added: v26.9.0
77
-->
88

99
> Stability: 1.0 - Early Development
@@ -286,7 +286,7 @@ run().compose(names).pipe(process.stdout);
286286
## `createRunner([options])`
287287

288288
<!-- YAML
289-
added: REPLACEME
289+
added: v26.9.0
290290
-->
291291

292292
* `options` {Object}
@@ -309,7 +309,7 @@ value passed to `createRunner()`.
309309
## `bench([name][, options], fn)`
310310

311311
<!-- YAML
312-
added: REPLACEME
312+
added: v26.9.0
313313
-->
314314

315315
* `name` {string} The benchmark name. **Default:** The `name` property of `fn`,
@@ -379,23 +379,23 @@ the samples.
379379
### `bench.skip([name][, options], fn)`
380380

381381
<!-- YAML
382-
added: REPLACEME
382+
added: v26.9.0
383383
-->
384384

385385
Shorthand for `bench(name, { ...options, skip: true }, fn)`.
386386

387387
### `bench.only([name][, options], fn)`
388388

389389
<!-- YAML
390-
added: REPLACEME
390+
added: v26.9.0
391391
-->
392392

393393
Shorthand for `bench(name, { ...options, only: true }, fn)`.
394394

395395
## `suite([name][, options], fn)`
396396

397397
<!-- YAML
398-
added: REPLACEME
398+
added: v26.9.0
399399
-->
400400

401401
* `name` {string} The suite name. **Default:** The `name` property of `fn`, or
@@ -421,15 +421,15 @@ functions are awaited before benchmark execution begins.
421421
## `describe([name][, options], fn)`
422422

423423
<!-- YAML
424-
added: REPLACEME
424+
added: v26.9.0
425425
-->
426426

427427
Alias for `suite()`.
428428

429429
## `before(fn)`
430430

431431
<!-- YAML
432-
added: REPLACEME
432+
added: v26.9.0
433433
-->
434434

435435
* `fn` {Function|AsyncFunction} The hook function.
@@ -439,7 +439,7 @@ Registers a hook that runs once before the benchmarks in the current suite.
439439
## `after(fn)`
440440

441441
<!-- YAML
442-
added: REPLACEME
442+
added: v26.9.0
443443
-->
444444

445445
* `fn` {Function|AsyncFunction} The hook function.
@@ -449,7 +449,7 @@ Registers a hook that runs once after the benchmarks in the current suite.
449449
## `beforeEach(fn)`
450450

451451
<!-- YAML
452-
added: REPLACEME
452+
added: v26.9.0
453453
-->
454454

455455
* `fn` {Function|AsyncFunction} The hook function. It receives an object with
@@ -462,7 +462,7 @@ the benchmark function before `context.start()` or `context.record()`.
462462
## `afterEach(fn)`
463463

464464
<!-- YAML
465-
added: REPLACEME
465+
added: v26.9.0
466466
-->
467467

468468
* `fn` {Function|AsyncFunction} The hook function. It receives an object with
@@ -475,7 +475,7 @@ in the benchmark function after `context.end()` or `context.record()`.
475475
## `run([options])`
476476

477477
<!-- YAML
478-
added: REPLACEME
478+
added: v26.9.0
479479
-->
480480

481481
* `options` {Object}
@@ -517,7 +517,7 @@ for await (const { type, data } of run()) {
517517
## `runFile(path[, options])`
518518

519519
<!-- YAML
520-
added: REPLACEME
520+
added: v26.9.0
521521
-->
522522

523523
* `path` {string|Buffer|URL} The path of one benchmark module.
@@ -571,7 +571,7 @@ instance is created for every warmup and measured sample.
571571
### `context.index`
572572

573573
<!-- YAML
574-
added: REPLACEME
574+
added: v26.9.0
575575
-->
576576

577577
* {number}
@@ -582,7 +582,7 @@ measured samples have separate index sequences.
582582
### `context.name`
583583

584584
<!-- YAML
585-
added: REPLACEME
585+
added: v26.9.0
586586
-->
587587

588588
* {string}
@@ -592,7 +592,7 @@ The benchmark name.
592592
### `context.params`
593593

594594
<!-- YAML
595-
added: REPLACEME
595+
added: v26.9.0
596596
-->
597597

598598
* {Object}
@@ -602,7 +602,7 @@ The benchmark's canonicalized parameter metadata.
602602
### `context.phase`
603603

604604
<!-- YAML
605-
added: REPLACEME
605+
added: v26.9.0
606606
-->
607607

608608
* {string}
@@ -613,7 +613,7 @@ and `'measurement'` for a measured invocation.
613613
### `context.signal`
614614

615615
<!-- YAML
616-
added: REPLACEME
616+
added: v26.9.0
617617
-->
618618

619619
* {AbortSignal}
@@ -624,7 +624,7 @@ finishes.
624624
### `context.start()`
625625

626626
<!-- YAML
627-
added: REPLACEME
627+
added: v26.9.0
628628
-->
629629

630630
Starts the measured region using `process.hrtime.bigint()`. Calling `start()`
@@ -633,7 +633,7 @@ more than once is an error.
633633
### `context.end(operations[, options])`
634634

635635
<!-- YAML
636-
added: REPLACEME
636+
added: v26.9.0
637637
-->
638638

639639
* `operations` {number} The number of completed operations. Must be a positive
@@ -654,7 +654,7 @@ region.
654654
### `context.record(sample)`
655655

656656
<!-- YAML
657-
added: REPLACEME
657+
added: v26.9.0
658658
-->
659659

660660
* `sample` {Object}
@@ -676,7 +676,7 @@ message transport from the duration. `record()` is mutually exclusive with
676676
### `context.diagnostic(message[, options])`
677677

678678
<!-- YAML
679-
added: REPLACEME
679+
added: v26.9.0
680680
-->
681681

682682
* `message` {any} A structured-cloneable diagnostic value. With CLI process
@@ -704,7 +704,7 @@ arguments or an uncloneable message or detail violate the sample contract.
704704
### `context.done()`
705705

706706
<!-- YAML
707-
added: REPLACEME
707+
added: v26.9.0
708708
-->
709709

710710
Requests successful benchmark completion after the current measured sample.

doc/api/cli.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ process.permission.has('fs.read', 'custom-require-2.js'); // true
271271
### `--allow-fs-vfs`
272272

273273
<!-- YAML
274-
added: REPLACEME
274+
added: v26.9.0
275275
-->
276276

277277
> Stability: 1.1 - Active development
@@ -473,7 +473,7 @@ Error: Access to this API has been restricted
473473
### `--bench`
474474

475475
<!-- YAML
476-
added: REPLACEME
476+
added: v26.9.0
477477
-->
478478

479479
> Stability: 1 - Experimental
@@ -501,7 +501,7 @@ This flag cannot be combined with `--test`, `--watch`, `--watch-path`,
501501
### `--bench-isolation=mode`
502502

503503
<!-- YAML
504-
added: REPLACEME
504+
added: v26.9.0
505505
-->
506506

507507
> Stability: 1 - Experimental
@@ -520,7 +520,7 @@ The supported modes are `'process'` and `'none'`.
520520
### `--bench-name-pattern=pattern`
521521

522522
<!-- YAML
523-
added: REPLACEME
523+
added: v26.9.0
524524
-->
525525

526526
> Stability: 1 - Experimental
@@ -531,7 +531,7 @@ regular expression `pattern`. Non-matching benchmarks are reported as skipped.
531531
### `--bench-reporter-destination=destination`
532532

533533
<!-- YAML
534-
added: REPLACEME
534+
added: v26.9.0
535535
-->
536536

537537
> Stability: 1 - Experimental
@@ -543,7 +543,7 @@ can be `stdout`, `stderr`, or a file path. A single reporter defaults to
543543
### `--bench-reporter=reporter`
544544

545545
<!-- YAML
546-
added: REPLACEME
546+
added: v26.9.0
547547
-->
548548

549549
> Stability: 1 - Experimental
@@ -559,7 +559,7 @@ have a corresponding `--bench-reporter-destination`. The default reporter is
559559
### `--bench-samples=count`
560560

561561
<!-- YAML
562-
added: REPLACEME
562+
added: v26.9.0
563563
-->
564564

565565
> Stability: 1 - Experimental
@@ -571,7 +571,7 @@ selected benchmark. A benchmark may finish earlier by calling
571571
### `--bench-warmup=count`
572572

573573
<!-- YAML
574-
added: REPLACEME
574+
added: v26.9.0
575575
-->
576576

577577
> Stability: 1 - Experimental
@@ -1017,7 +1017,7 @@ Node.js must be built against a FIPS-capable OpenSSL.
10171017
### `--enable-fips-indicator-events`
10181018

10191019
<!-- YAML
1020-
added: REPLACEME
1020+
added: v26.9.0
10211021
-->
10221022

10231023
Publish OpenSSL FIPS indicator results to the
@@ -1216,7 +1216,7 @@ Enable experimental import support for `.node` addons.
12161216
### `--experimental-bench`
12171217

12181218
<!-- YAML
1219-
added: REPLACEME
1219+
added: v26.9.0
12201220
-->
12211221

12221222
> Stability: 1 - Experimental
@@ -1397,7 +1397,7 @@ configuration file.
13971397
### `--experimental-dtls`
13981398

13991399
<!-- YAML
1400-
added: REPLACEME
1400+
added: v26.9.0
14011401
-->
14021402

14031403
> Stability: 1 - Experimental
@@ -1694,7 +1694,7 @@ Enable experimental WebAssembly System Interface (WASI) support.
16941694
### `--experimental-web-worker`
16951695

16961696
<!-- YAML
1697-
added: REPLACEME
1697+
added: v26.9.0
16981698
-->
16991699

17001700
Enable experimental support for the Web Worker API.
@@ -1724,7 +1724,7 @@ Disable loading native addons that are not [context-aware][].
17241724
<!-- YAML
17251725
added: v6.0.0
17261726
changes:
1727-
- version: REPLACEME
1727+
- version: v26.9.0
17281728
pr-url: https://github.com/nodejs/node/pull/65645
17291729
description: Added the optional `provider` and `strict` modes.
17301730
-->
@@ -2436,7 +2436,7 @@ Silence all process warnings (including deprecations).
24362436
### `--no-worker-snapshot`
24372437

24382438
<!-- YAML
2439-
added: REPLACEME
2439+
added: v26.9.0
24402440
-->
24412441

24422442
> Stability: 1 - Experimental
@@ -2858,7 +2858,7 @@ forked processes, or clustered processes.
28582858
<!-- YAML
28592859
added: v22.0.0
28602860
changes:
2861-
- version: REPLACEME
2861+
- version: v26.9.0
28622862
pr-url: https://github.com/nodejs/node/pull/64606
28632863
description: Passing `--run` without a command lists the available scripts.
28642864
- version: v22.3.0
@@ -3668,7 +3668,7 @@ added:
36683668
- v13.6.0
36693669
- v12.17.0
36703670
changes:
3671-
- version: REPLACEME
3671+
- version: v26.9.0
36723672
pr-url: https://github.com/nodejs/node/pull/65389
36733673
description: This option is now a no-op.
36743674
-->

0 commit comments

Comments
 (0)