Skip to content

buffer: improve base64 and base64url performance - #52428

Merged
nodejs-github-bot merged 5 commits into
nodejs:mainfrom
anonrig:improve-base64-operations
Apr 12, 2024
Merged

buffer: improve base64 and base64url performance#52428
nodejs-github-bot merged 5 commits into
nodejs:mainfrom
anonrig:improve-base64-operations

Conversation

@anonrig

Copy link
Copy Markdown
Member

The work is mostly done by @lemire.

Suggested changes improves the performance of base64 and base64url operations.

Benchmarks

 confidence improvement accuracy (*) (**) (***)
buffers/buffer-base64-decode-wrapped.js n=32 linesCount=524288 charsPerLine=76 *** 196.05 % ±2.25% ±3.03% ±4.01%
buffers/buffer-base64-decode.js size=8388608 n=32 *** 218.27 % ±3.45% ±4.65% ±6.16%
buffers/buffer-base64-encode.js n=32 len=67108864 *** 2.95 % ±0.67% ±0.89% ±1.16%
buffers/buffer-base64url-decode.js size=8388608 n=32 *** 218.32 % ±4.34% ±5.84% ±7.74%
buffers/buffer-base64url-encode.js n=32 len=67108864 *** 246.27 % ±2.68% ±3.61% ±4.79%
Be aware that when doing many comparisons the risk of a false-positive result increases.
In this case, there are 5 comparisons, you can thus expect the following amount of false-positive results:
0.25 false positives, when considering a 5% risk acceptance (*, **, ***),
0.05 false positives, when considering a 1% risk acceptance (**, ***),
0.01 false positives, when considering a 0.1% risk acceptance (***)

@nodejs-github-botnodejs-github-bot added buffer Issues and PRs related to the buffer subsystem. c++ Issues and PRs that require attention from people who are familiar with C++. needs-ci PRs that need a full CI run. labels Apr 8, 2024
@rluvatonrluvaton added the needs-benchmark-ci PR that need a benchmark CI run. label Apr 8, 2024
@lemire

Copy link
Copy Markdown
Member

Note that gains are not expected for buffers/buffer-base64-encode.js so the 2.95% result is probably approximately 0%. (I am only pointing out that this is not an issue.)

Comment threadsrc/string_bytes.cc Outdated
@Uzlopak

Copy link
Copy Markdown
Contributor

can we have a btoa too, please?

@anonrig
anonrigforce-pushed the improve-base64-operations branch from b9b5d45 to 4fe9aa6CompareApril 8, 2024 18:26
@anonrig
anonrigforce-pushed the improve-base64-operations branch 2 times, most recently from 57db503 to 4adcf8bCompareApril 8, 2024 19:39
@anonrig

Copy link
Copy Markdown
MemberAuthor

@lemire there are some test cases failing. would you mind looking into them?

Co-authored-by: Daniel Lemire <daniel@lemire.me>
@anonrig
anonrigforce-pushed the improve-base64-operations branch from 4adcf8b to a1670bcCompareApril 8, 2024 19:50
@lemire

Copy link
Copy Markdown
Member

@Uzlopak@anonrig

can we have a btoa too, please?

This should be "easy".

@lemire

Copy link
Copy Markdown
Member

@anonrig I pushed a commit.

@anonriganonrig added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 9, 2024
@lemire

Copy link
Copy Markdown
Member

@anonrig I did some additional optimizations.

@mcollinamcollina left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@lemire

Copy link
Copy Markdown
Member

@anonrig If you get around to it, it would be nice to revisit your benchmarks. I bet that you'd get better numbers with the latest changes.

@anonrig

Copy link
Copy Markdown
MemberAuthor

@anonrig If you get around to it, it would be nice to revisit your benchmarks. I bet that you'd get better numbers with the latest changes.

The benchmarks didn't show anything, but I'm pretty sure, it has a flaw.

 confidence improvement accuracy (*) (**) (***)
buffers/buffer-base64-decode-wrapped.js n=32 linesCount=524288 charsPerLine=76 *** 191.75 % ±1.82% ±2.45% ±3.25%
buffers/buffer-base64-decode.js size=8388608 n=32 *** 213.25 % ±2.59% ±3.49% ±4.63%
buffers/buffer-base64-encode.js n=32 len=67108864 *** 3.57 % ±1.21% ±1.61% ±2.10%
buffers/buffer-base64url-decode.js size=8388608 n=32 *** 216.97 % ±0.87% ±1.17% ±1.54%
buffers/buffer-base64url-encode.js n=32 len=67108864 *** 244.58 % ±2.97% ±4.00% ±5.31%
Be aware that when doing many comparisons the risk of a false-positive result increases.
In this case, there are 5 comparisons, you can thus expect the following amount of false-positive results:
0.25 false positives, when considering a 5% risk acceptance (*, **, ***),
0.05 false positives, when considering a 1% risk acceptance (**, ***),
0.01 false positives, when considering a 0.1% risk acceptance (***)

@lemire

Copy link
Copy Markdown
Member

The benchmarks didn't show anything, but I'm pretty sure, it has a flaw.

Hmmm...

@anonriganonrig added the notable-change PRs with changes that should be highlighted in changelogs. label Apr 10, 2024
@github-actions

Copy link
Copy Markdown
Contributor

The notable-changePRs with changes that should be highlighted in changelogs. label has been added by @anonrig.

Please suggest a text for the release notes if you'd like to include a more detailed summary, then proceed to update the PR description with the text or a link to the notable change suggested text comment. Otherwise, the commit will be placed in the Other Notable Changes section.

@lemire

Copy link
Copy Markdown
Member

For people who want profiling... here are the numbers for the base64 decoding prior to this PR:

Screenshot 2024-04-10 at 11 54 07 AM

Here are the results after...

Screenshot 2024-04-10 at 11 55 22 AM

So the main bottleneck after this PR is merged will be memmove. Unless we find a way to move less data, this function is unlikely to ever get much faster.

@anonriganonrig added the commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. label Apr 12, 2024
@nodejs-github-botnodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Apr 12, 2024
@nodejs-github-bot
nodejs-github-bot merged commit 4221631 into nodejs:mainApr 12, 2024
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in 4221631

aduh95 pushed a commit that referenced this pull request Apr 29, 2024
Co-authored-by: Daniel Lemire <daniel@lemire.me>
PR-URL: #52428
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
aduh95 added a commit that referenced this pull request Apr 30, 2024
Notable changes:
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
module:
* (SEMVER-MINOR) implement NODE_COMPILE_CACHE for automatic on-disk code caching (Joyee Cheung) #52535
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
src,permission:
* throw async errors on async APIs (Rafael Gonzaga) #52730
test_runner:
* (SEMVER-MINOR) add --test-skip-pattern cli option (Aviv Keller) #52529
url:
* (SEMVER-MINOR) implement parse method for safer URL parsing (Ali Hassan) #52280
PR-URL: TODO
aduh95 added a commit that referenced this pull request May 1, 2024
Notable changes:
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
module:
* (SEMVER-MINOR) implement NODE_COMPILE_CACHE for automatic on-disk code caching (Joyee Cheung) #52535
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
src,permission:
* throw async errors on async APIs (Rafael Gonzaga) #52730
test_runner:
* (SEMVER-MINOR) add --test-skip-pattern cli option (Aviv Keller) #52529
url:
* (SEMVER-MINOR) implement parse method for safer URL parsing (Ali Hassan) #52280
PR-URL: #52768
aduh95 added a commit that referenced this pull request May 1, 2024
Notable changes:
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
module:
* (SEMVER-MINOR) implement NODE_COMPILE_CACHE for automatic on-disk code caching (Joyee Cheung) #52535
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
src,permission:
* throw async errors on async APIs (Rafael Gonzaga) #52730
test_runner:
* (SEMVER-MINOR) add --test-skip-pattern cli option (Aviv Keller) #52529
url:
* (SEMVER-MINOR) implement parse method for safer URL parsing (Ali Hassan) #52280
PR-URL: #52768
aduh95 added a commit that referenced this pull request May 2, 2024
Notable changes:
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
module:
* (SEMVER-MINOR) implement NODE_COMPILE_CACHE for automatic on-disk code caching (Joyee Cheung) #52535
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
src,permission:
* throw async errors on async APIs (Rafael Gonzaga) #52730
test_runner:
* (SEMVER-MINOR) add --test-skip-pattern cli option (Aviv Keller) #52529
url:
* (SEMVER-MINOR) implement parse method for safer URL parsing (Ali Hassan) #52280
PR-URL: #52768
marco-ippolito pushed a commit that referenced this pull request May 2, 2024
Co-authored-by: Daniel Lemire <daniel@lemire.me>
PR-URL: #52428
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@marco-ippolitomarco-ippolito mentioned this pull request May 2, 2024
marco-ippolito added a commit that referenced this pull request May 2, 2024
Notable changes:
benchmark:
* add AbortSignal.abort benchmarks (Raz Luvaton) #52408
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
crypto:
* deprecate implicitly shortened GCM tags (Tobias Nießen) #52345
deps:
* (SEMVER-MINOR) update simdutf to 5.0.0 (Daniel Lemire) #52138
* (SEMVER-MINOR) update undici to 6.3.0 (Node.js GitHub Bot) #51462
* (SEMVER-MINOR) update undici to 6.2.1 (Node.js GitHub Bot) #51278
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
doc:
* update release gpg keyserver (marco-ippolito) #52257
* add release key for marco-ippolito (marco-ippolito) #52257
* add UlisesGascon as a collaborator (Ulises Gascón) #51991
* (SEMVER-MINOR) deprecate fs.Stats public constructor (Marco Ippolito) #51879
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
fs:
* add stacktrace to fs/promises (翠 / green) #49849
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
report:
* (SEMVER-MINOR) add `--report-exclude-network` option (Ethan Arrowood) #51645
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
* (SEMVER-MINOR) add C++ ProcessEmitWarningSync() (Joyee Cheung) #51977
* (SEMVER-MINOR) add uv_get_available_memory to report and process (theanarkh) #52023
* (SEMVER-MINOR) preload function for Environment (Cheng Zhao) #51539
stream:
* (SEMVER-MINOR) support typed arrays (IlyasShabi) #51866
test_runner:
* (SEMVER-MINOR) add suite() (Colin Ihrig) #52127
* (SEMVER-MINOR) support forced exit (Colin Ihrig) #52038
* (SEMVER-MINOR) add `test:complete` event to reflect execution order (Moshe Atlow) #51909
util:
* (SEMVER-MINOR) support array of formats in util.styleText (Marco Ippolito) #52040
v8:
* (SEMVER-MINOR) implement v8.queryObjects() for memory leak regression testing (Joyee Cheung) #51927
watch:
* mark as stable (Moshe Atlow) #52074
PR-URL: #52793
targos pushed a commit that referenced this pull request May 2, 2024
Notable changes:
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
module:
* (SEMVER-MINOR) implement NODE_COMPILE_CACHE for automatic on-disk code caching (Joyee Cheung) #52535
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
src,permission:
* throw async errors on async APIs (Rafael Gonzaga) #52730
test_runner:
* (SEMVER-MINOR) add --test-skip-pattern cli option (Aviv Keller) #52529
url:
* (SEMVER-MINOR) implement parse method for safer URL parsing (Ali Hassan) #52280
PR-URL: #52768
marco-ippolito pushed a commit that referenced this pull request May 3, 2024
Co-authored-by: Daniel Lemire <daniel@lemire.me>
PR-URL: #52428
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
marco-ippolito added a commit that referenced this pull request May 3, 2024
Notable changes:
benchmark:
* add AbortSignal.abort benchmarks (Raz Luvaton) #52408
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
crypto:
* deprecate implicitly shortened GCM tags (Tobias Nießen) #52345
deps:
* (SEMVER-MINOR) update simdutf to 5.0.0 (Daniel Lemire) #52138
* (SEMVER-MINOR) update undici to 6.3.0 (Node.js GitHub Bot) #51462
* (SEMVER-MINOR) update undici to 6.2.1 (Node.js GitHub Bot) #51278
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
doc:
* update release gpg keyserver (marco-ippolito) #52257
* add release key for marco-ippolito (marco-ippolito) #52257
* add UlisesGascon as a collaborator (Ulises Gascón) #51991
* (SEMVER-MINOR) deprecate fs.Stats public constructor (Marco Ippolito) #51879
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
fs:
* add stacktrace to fs/promises (翠 / green) #49849
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
report:
* (SEMVER-MINOR) add `--report-exclude-network` option (Ethan Arrowood) #51645
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
* (SEMVER-MINOR) add C++ ProcessEmitWarningSync() (Joyee Cheung) #51977
* (SEMVER-MINOR) add uv_get_available_memory to report and process (theanarkh) #52023
* (SEMVER-MINOR) preload function for Environment (Cheng Zhao) #51539
stream:
* (SEMVER-MINOR) support typed arrays (IlyasShabi) #51866
test_runner:
* (SEMVER-MINOR) add suite() (Colin Ihrig) #52127
* (SEMVER-MINOR) add `test:complete` event to reflect execution order (Moshe Atlow) #51909
util:
* (SEMVER-MINOR) support array of formats in util.styleText (Marco Ippolito) #52040
v8:
* (SEMVER-MINOR) implement v8.queryObjects() for memory leak regression testing (Joyee Cheung) #51927
watch:
* mark as stable (Moshe Atlow) #52074
PR-URL: #52793
marco-ippolito added a commit that referenced this pull request May 7, 2024
Notable changes:
benchmark:
* add AbortSignal.abort benchmarks (Raz Luvaton) #52408
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
crypto:
* deprecate implicitly shortened GCM tags (Tobias Nießen) #52345
deps:
* (SEMVER-MINOR) update simdutf to 5.0.0 (Daniel Lemire) #52138
* (SEMVER-MINOR) update undici to 6.3.0 (Node.js GitHub Bot) #51462
* (SEMVER-MINOR) update undici to 6.2.1 (Node.js GitHub Bot) #51278
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
doc:
* update release gpg keyserver (marco-ippolito) #52257
* add release key for marco-ippolito (marco-ippolito) #52257
* add UlisesGascon as a collaborator (Ulises Gascón) #51991
* (SEMVER-MINOR) deprecate fs.Stats public constructor (Marco Ippolito) #51879
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
fs:
* add stacktrace to fs/promises (翠 / green) #49849
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
report:
* (SEMVER-MINOR) add `--report-exclude-network` option (Ethan Arrowood) #51645
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
* (SEMVER-MINOR) add C++ ProcessEmitWarningSync() (Joyee Cheung) #51977
* (SEMVER-MINOR) add uv_get_available_memory to report and process (theanarkh) #52023
* (SEMVER-MINOR) preload function for Environment (Cheng Zhao) #51539
stream:
* (SEMVER-MINOR) support typed arrays (IlyasShabi) #51866
test_runner:
* (SEMVER-MINOR) add suite() (Colin Ihrig) #52127
* (SEMVER-MINOR) add `test:complete` event to reflect execution order (Moshe Atlow) #51909
util:
* (SEMVER-MINOR) support array of formats in util.styleText (Marco Ippolito) #52040
v8:
* (SEMVER-MINOR) implement v8.queryObjects() for memory leak regression testing (Joyee Cheung) #51927
watch:
* mark as stable (Moshe Atlow) #52074
PR-URL: #52793
marco-ippolito added a commit that referenced this pull request May 7, 2024
Notable changes:
benchmark:
* add AbortSignal.abort benchmarks (Raz Luvaton) #52408
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) #52428
crypto:
* deprecate implicitly shortened GCM tags (Tobias Nießen) #52345
deps:
* (SEMVER-MINOR) update simdutf to 5.0.0 (Daniel Lemire) #52138
* (SEMVER-MINOR) update undici to 6.3.0 (Node.js GitHub Bot) #51462
* (SEMVER-MINOR) update undici to 6.2.1 (Node.js GitHub Bot) #51278
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) #52492
doc:
* update release gpg keyserver (marco-ippolito) #52257
* add release key for marco-ippolito (marco-ippolito) #52257
* add UlisesGascon as a collaborator (Ulises Gascón) #51991
* (SEMVER-MINOR) deprecate fs.Stats public constructor (Marco Ippolito) #51879
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) #52618
fs:
* add stacktrace to fs/promises (翠 / green) #49849
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) #52509
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) #52474
report:
* (SEMVER-MINOR) add `--report-exclude-network` option (Ethan Arrowood) #51645
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) #52595
* (SEMVER-MINOR) add C++ ProcessEmitWarningSync() (Joyee Cheung) #51977
* (SEMVER-MINOR) add uv_get_available_memory to report and process (theanarkh) #52023
* (SEMVER-MINOR) preload function for Environment (Cheng Zhao) #51539
stream:
* (SEMVER-MINOR) support typed arrays (IlyasShabi) #51866
test_runner:
* (SEMVER-MINOR) add suite() (Colin Ihrig) #52127
* (SEMVER-MINOR) add `test:complete` event to reflect execution order (Moshe Atlow) #51909
util:
* (SEMVER-MINOR) support array of formats in util.styleText (Marco Ippolito) #52040
v8:
* (SEMVER-MINOR) implement v8.queryObjects() for memory leak regression testing (Joyee Cheung) #51927
watch:
* mark as stable (Moshe Atlow) #52074
PR-URL: #52793
soophoo pushed a commit to soophoo/node that referenced this pull request Jun 20, 2024
Notable changes:
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) nodejs#52428
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) nodejs#52492
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) nodejs#52618
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) nodejs#52509
module:
* (SEMVER-MINOR) implement NODE_COMPILE_CACHE for automatic on-disk code caching (Joyee Cheung) nodejs#52535
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) nodejs#52474
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) nodejs#52595
src,permission:
* throw async errors on async APIs (Rafael Gonzaga) nodejs#52730
test_runner:
* (SEMVER-MINOR) add --test-skip-pattern cli option (Aviv Keller) nodejs#52529
url:
* (SEMVER-MINOR) implement parse method for safer URL parsing (Ali Hassan) nodejs#52280
PR-URL: nodejs#52768
soophoo pushed a commit to soophoo/node that referenced this pull request Jun 20, 2024
Notable changes:
benchmark:
* add AbortSignal.abort benchmarks (Raz Luvaton) nodejs#52408
buffer:
* improve `base64` and `base64url` performance (Yagiz Nizipli) nodejs#52428
crypto:
* deprecate implicitly shortened GCM tags (Tobias Nießen) nodejs#52345
deps:
* (SEMVER-MINOR) update simdutf to 5.0.0 (Daniel Lemire) nodejs#52138
* (SEMVER-MINOR) update undici to 6.3.0 (Node.js GitHub Bot) nodejs#51462
* (SEMVER-MINOR) update undici to 6.2.1 (Node.js GitHub Bot) nodejs#51278
dns:
* (SEMVER-MINOR) add order option and support ipv6first (Paolo Insogna) nodejs#52492
doc:
* update release gpg keyserver (marco-ippolito) nodejs#52257
* add release key for marco-ippolito (marco-ippolito) nodejs#52257
* add UlisesGascon as a collaborator (Ulises Gascón) nodejs#51991
* (SEMVER-MINOR) deprecate fs.Stats public constructor (Marco Ippolito) nodejs#51879
events,doc:
* mark CustomEvent as stable (Daeyeon Jeong) nodejs#52618
fs:
* add stacktrace to fs/promises (翠 / green) nodejs#49849
lib, url:
* (SEMVER-MINOR) add a `windows` option to path parsing (Aviv Keller) nodejs#52509
net:
* (SEMVER-MINOR) add CLI option for autoSelectFamilyAttemptTimeout (Paolo Insogna) nodejs#52474
report:
* (SEMVER-MINOR) add `--report-exclude-network` option (Ethan Arrowood) nodejs#51645
src:
* (SEMVER-MINOR) add `string_view` overload to snapshot FromBlob (Anna Henningsen) nodejs#52595
* (SEMVER-MINOR) add C++ ProcessEmitWarningSync() (Joyee Cheung) nodejs#51977
* (SEMVER-MINOR) add uv_get_available_memory to report and process (theanarkh) nodejs#52023
* (SEMVER-MINOR) preload function for Environment (Cheng Zhao) nodejs#51539
stream:
* (SEMVER-MINOR) support typed arrays (IlyasShabi) nodejs#51866
test_runner:
* (SEMVER-MINOR) add suite() (Colin Ihrig) nodejs#52127
* (SEMVER-MINOR) add `test:complete` event to reflect execution order (Moshe Atlow) nodejs#51909
util:
* (SEMVER-MINOR) support array of formats in util.styleText (Marco Ippolito) nodejs#52040
v8:
* (SEMVER-MINOR) implement v8.queryObjects() for memory leak regression testing (Joyee Cheung) nodejs#51927
watch:
* mark as stable (Moshe Atlow) nodejs#52074
PR-URL: nodejs#52793
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bufferIssues and PRs related to the buffer subsystem.c++Issues and PRs that require attention from people who are familiar with C++.commit-queue-squashAdd this label to instruct the Commit Queue to squash all the PR commits into the first one.needs-benchmark-ciPR that need a benchmark CI run.needs-ciPRs that need a full CI run.notable-changePRs with changes that should be highlighted in changelogs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

@anonrig@lemire@Uzlopak@benjamingr@nodejs-github-bot@mcollina@jasnell@rluvaton