Skip to content

Conversation

@vercel
Copy link

@vercel vercel bot commented Dec 9, 2025

Important

This is an automatic PR generated by Vercel to help you with patching efforts. We can't guarantee it's comprehensive, and it may contain mistakes. Please review our guidance before merging these changes.

A critical remote code execution (RCE) vulnerability in React Server Components, impacting frameworks such as Next.js, was identified in the project keypal. The vulnerability enables unauthenticated RCE on the server via insecure deserialization in the React Flight protocol.

This issue is tracked under:

This automated pull request upgrades the affected React and Next.js packages to patched versions that fully remediate the issue.

More Info | security@vercel.com


Summary by cubic

Upgraded Next.js to 16.0.7 in apps/docs and apps/example to patch the React Server Components RCE in React Flight. Addresses GHSA-9qr9-h5gf-34mp, CVE-2025-55182, and CVE-2025-66478.

Written for commit b19b85c. Summary will update automatically on new commits.

Updated dependencies to fix Next.js CVE vulnerabilities.

The fix-react2shell-next tool automatically updated the following packages to their secure versions:
- next
- react-server-dom-webpack
- react-server-dom-parcel  
- react-server-dom-turbopack

All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory.

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
@vercel
Copy link
Author

vercel bot commented Dec 9, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
keypal Error Error Dec 9, 2025 5:43am

@coderabbitai
Copy link

coderabbitai bot commented Dec 9, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Dec 9, 2025

Benchmark Results

$ bun run benchmark.ts
📦 Setting up test data...
✅ Created 100 test keys

🚀 Running benchmarks...

━━━ Core Utilities ━━━

�[90mclk: ~3.12 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                         avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------------- -------------------------------
generateKey() - default (32 chars) �[1m�[33m622.22 ns�[0m�[1m/iter�[0m �[90m597.72 ns�[0m �[36m█▄�[0m�[33m �[0m�[35m                  �[0m
                            �[90m(�[0m�[36m572.28 ns�[0m�[90m … �[0m�[35m1.16 µs�[0m�[90m)�[0m �[90m  1.14 µs�[0m �[36m██�[0m�[33m �[0m�[35m                  �[0m
                          �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m576.00  b�[0m�[90m) �[0m�[33m  6.64  b�[0m �[36m██�[0m�[33m▂�[0m�[35m▃▇▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

generateKey() - with prefix        �[1m�[33m625.23 ns�[0m�[1m/iter�[0m �[90m612.55 ns�[0m �[36m▂█ �[0m�[33m �[0m�[35m                 �[0m
                            �[90m(�[0m�[36m595.73 ns�[0m�[90m … �[0m�[35m1.06 µs�[0m�[90m)�[0m �[90m775.94 ns�[0m �[36m██ �[0m�[33m �[0m�[35m                 �[0m
                          �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 32.00  b�[0m�[90m) �[0m�[33m  0.12  b�[0m �[36m██▃�[0m�[33m▁�[0m�[35m▁▁▁▁▁▁▃▅▂▂▁▁▁▁▁▁▁�[0m

generateKey() - short (16 chars)   �[1m�[33m401.83 ns�[0m�[1m/iter�[0m �[90m380.71 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                          �[90m(�[0m�[36m371.25 ns�[0m�[90m … �[0m�[35m803.97 ns�[0m�[90m)�[0m �[90m743.46 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                          �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m288.00  b�[0m�[90m) �[0m�[33m  1.44  b�[0m �[36m█▄�[0m�[33m▁�[0m�[35m▁▁▂▃▁▁▁▁▁▁▁▁▁▁▁▂▁▁�[0m

generateKey() - long (64 chars)    �[1m�[33m  1.22 µs�[0m�[1m/iter�[0m �[90m  1.27 µs�[0m �[36m █    �[0m�[33m �[0m�[35m              �[0m
                              �[90m(�[0m�[36m1.18 µs�[0m�[90m … �[0m�[35m1.79 µs�[0m�[90m)�[0m �[90m  1.33 µs�[0m �[36m██    �[0m�[33m �[0m�[35m              �[0m
                          �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m320.00  b�[0m�[90m) �[0m�[33m  3.27  b�[0m �[36m██▇▄▂▁�[0m�[33m▂�[0m�[35m▁▁▂▁▄▆█▇▃▂▁▂▁▂�[0m

�[1msummary�[0m
  �[1m�[36mgenerateKey() - short (16 chars)�[0m
   �[32m1.55�[0mx faster than �[1m�[36mgenerateKey() - default (32 chars)�[0m
   �[32m1.56�[0mx faster than �[1m�[36mgenerateKey() - with prefix�[0m
   �[32m3.04�[0mx faster than �[1m�[36mgenerateKey() - long (64 chars)�[0m
�[90mclk: ~1.58 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
hashKey() - SHA-256          �[1m�[33m607.64 ns�[0m�[1m/iter�[0m �[90m546.01 ns�[0m �[36m█  �[0m�[33m �[0m�[35m                 �[0m
                      �[90m(�[0m�[36m522.97 ns�[0m�[90m … �[0m�[35m1.22 µs�[0m�[90m)�[0m �[90m  1.18 µs�[0m �[36m█  �[0m�[33m �[0m�[35m                 �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.13 kb�[0m�[90m) �[0m�[33m 48.12  b�[0m �[36m██▂�[0m�[33m▂�[0m�[35m▁▁▁▁▁▁▁▂▂▂▂▂▁▁▁▁▁�[0m

hashKey() - SHA-512          �[1m�[33m856.98 ns�[0m�[1m/iter�[0m �[90m803.93 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                      �[90m(�[0m�[36m786.54 ns�[0m�[90m … �[0m�[35m1.47 µs�[0m�[90m)�[0m �[90m  1.45 µs�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m608.00  b�[0m�[90m) �[0m�[33m 32.44  b�[0m �[36m█▅�[0m�[33m▁�[0m�[35m▁▁▁▂▁▁▁▁▁▁▁▁▂▁▁▁▁▂�[0m

hashKey() - with salt        �[1m�[33m644.68 ns�[0m�[1m/iter�[0m �[90m603.25 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                      �[90m(�[0m�[36m581.24 ns�[0m�[90m … �[0m�[35m1.20 µs�[0m�[90m)�[0m �[90m  1.18 µs�[0m �[36m█▄�[0m�[33m �[0m�[35m                  �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m576.00  b�[0m�[90m) �[0m�[33m 15.69  b�[0m �[36m██�[0m�[33m▁�[0m�[35m▁▁▁▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁�[0m

validateKey() - matching     �[1m�[33m  1.05 µs�[0m�[1m/iter�[0m �[90m950.49 ns�[0m �[36m█  �[0m�[33m �[0m�[35m                 �[0m
                      �[90m(�[0m�[36m926.87 ns�[0m�[90m … �[0m�[35m1.76 µs�[0m�[90m)�[0m �[90m  1.72 µs�[0m �[36m█  �[0m�[33m �[0m�[35m                 �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m512.00  b�[0m�[90m) �[0m�[33m  7.65  b�[0m �[36m█▅▁�[0m�[33m▁�[0m�[35m▁▁▁▁▁▁▁▁▁▁▃▂▁▁▁▂▂�[0m

validateKey() - non-matching �[1m�[33m  1.04 µs�[0m�[1m/iter�[0m �[90m950.20 ns�[0m �[36m  █  �[0m�[33m �[0m�[35m               �[0m
                      �[90m(�[0m�[36m826.93 ns�[0m�[90m … �[0m�[35m1.78 µs�[0m�[90m)�[0m �[90m  1.77 µs�[0m �[36m  █  �[0m�[33m �[0m�[35m               �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m128.00  b�[0m�[90m) �[0m�[33m  3.34  b�[0m �[36m▁▁██▁�[0m�[33m▁�[0m�[35m▁▁▁▁▁▁▁▁▁▃▂▁▁▂▂�[0m

�[1msummary�[0m
  �[1m�[36mhashKey() - SHA-256�[0m
   �[32m1.06�[0mx faster than �[1m�[36mhashKey() - with salt�[0m
   �[32m1.41�[0mx faster than �[1m�[36mhashKey() - SHA-512�[0m
   �[32m1.71�[0mx faster than �[1m�[36mvalidateKey() - non-matching�[0m
   �[32m1.73�[0mx faster than �[1m�[36mvalidateKey() - matching�[0m
�[90mclk: ~3.03 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                               avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------------------- -------------------------------
extractKeyFromHeaders() - Headers object �[1m�[33m206.96 ns�[0m�[1m/iter�[0m �[90m197.51 ns�[0m �[36m█▇ �[0m�[33m �[0m�[35m                 �[0m
                                �[90m(�[0m�[36m179.99 ns�[0m�[90m … �[0m�[35m459.42 ns�[0m�[90m)�[0m �[90m384.69 ns�[0m �[36m██ �[0m�[33m �[0m�[35m                 �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.03 kb�[0m�[90m) �[0m�[33m 27.23  b�[0m �[36m███�[0m�[33m▂�[0m�[35m▁▅▂▂▁▂▂▁▁▁▁▁▁▁▁▃▂�[0m

extractKeyFromHeaders() - plain object   �[1m�[33m195.34 ns�[0m�[1m/iter�[0m �[90m192.26 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[36m186.69 ns�[0m�[90m … �[0m�[35m406.35 ns�[0m�[90m)�[0m �[90m279.77 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m128.00  b�[0m�[90m) �[0m�[33m  5.30  b�[0m �[36m▇█�[0m�[33m▃�[0m�[35m▁▁▃▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁�[0m

extractKeyFromHeaders() - with Bearer    �[1m�[33m185.72 ns�[0m�[1m/iter�[0m �[90m181.41 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[36m173.01 ns�[0m�[90m … �[0m�[35m343.01 ns�[0m�[90m)�[0m �[90m285.68 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m256.00  b�[0m�[90m) �[0m�[33m  8.87  b�[0m �[36m▃█�[0m�[33m▅�[0m�[35m▂▁▁▁▁▁▁▂▂▁▁▁▁▁▁▁▁▁�[0m

extractKeyFromHeaders() - custom header  �[1m�[33m175.01 ns�[0m�[1m/iter�[0m �[90m171.03 ns�[0m �[36m  █�[0m�[33m �[0m�[35m                 �[0m
                                �[90m(�[0m�[36m157.10 ns�[0m�[90m … �[0m�[35m419.28 ns�[0m�[90m)�[0m �[90m275.01 ns�[0m �[36m  █�[0m�[33m �[0m�[35m                 �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m160.00  b�[0m�[90m) �[0m�[33m  4.66  b�[0m �[36m▂▃█�[0m�[33m▄�[0m�[35m▁▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasApiKey() - present                    �[1m�[33m205.64 ns�[0m�[1m/iter�[0m �[90m202.33 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[36m195.46 ns�[0m�[90m … �[0m�[35m336.48 ns�[0m�[90m)�[0m �[90m291.68 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m128.00  b�[0m�[90m) �[0m�[33m  6.46  b�[0m �[36m▅█�[0m�[33m▅�[0m�[35m▂▁▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁�[0m

hasApiKey() - missing                    �[1m�[33m301.85 ns�[0m�[1m/iter�[0m �[90m297.53 ns�[0m �[36m   �[0m�[33m█�[0m�[35m                 �[0m
                                �[90m(�[0m�[36m240.85 ns�[0m�[90m … �[0m�[35m618.30 ns�[0m�[90m)�[0m �[90m598.98 ns�[0m �[36m   �[0m�[33m█�[0m�[35m                 �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.03 kb�[0m�[90m) �[0m�[33m  6.69  b�[0m �[36m▁▂▅�[0m�[33m█�[0m�[35m▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

�[1msummary�[0m
  �[1m�[36mextractKeyFromHeaders() - custom header�[0m
   �[32m1.06�[0mx faster than �[1m�[36mextractKeyFromHeaders() - with Bearer�[0m
   �[32m1.12�[0mx faster than �[1m�[36mextractKeyFromHeaders() - plain object�[0m
   �[32m1.18�[0mx faster than �[1m�[36mhasApiKey() - present�[0m
   �[32m1.18�[0mx faster than �[1m�[36mextractKeyFromHeaders() - Headers object�[0m
   �[32m1.72�[0mx faster than �[1m�[36mhasApiKey() - missing�[0m
�[90mclk: ~3.09 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                       avg (min … max) p75 / p99    (min … top 1%)
----------------------------------------------- -------------------------------
isExpired() - future date        �[1m�[33m200.83 ns�[0m�[1m/iter�[0m �[90m198.98 ns�[0m �[36m  �[0m�[33m█�[0m�[35m                  �[0m
                        �[90m(�[0m�[36m190.68 ns�[0m�[90m … �[0m�[35m371.99 ns�[0m�[90m)�[0m �[90m282.89 ns�[0m �[36m ▇�[0m�[33m█�[0m�[35m                  �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 96.00  b�[0m�[90m) �[0m�[33m  1.79  b�[0m �[36m▂█�[0m�[33m█�[0m�[35m▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

isExpired() - past date          �[1m�[33m200.02 ns�[0m�[1m/iter�[0m �[90m198.60 ns�[0m �[36m  �[0m�[33m█�[0m�[35m                  �[0m
                        �[90m(�[0m�[36m190.76 ns�[0m�[90m … �[0m�[35m304.61 ns�[0m�[90m)�[0m �[90m276.44 ns�[0m �[36m ▅�[0m�[33m█�[0m�[35m                  �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 96.00  b�[0m�[90m) �[0m�[33m  2.73  b�[0m �[36m▁█�[0m�[33m█�[0m�[35m▂▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁�[0m

isExpired() - null               �[1m�[33m219.20 ps�[0m�[1m/iter�[0m �[90m166.50 ps�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                         �[90m(�[0m�[36m163.82 ps�[0m�[90m … �[0m�[35m16.23 ns�[0m�[90m)�[0m �[90m  1.71 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 32.00  b�[0m�[90m) �[0m�[33m  0.04  b�[0m �[36m█�[0m�[33m▁�[0m�[35m▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

getExpirationTime() - valid date �[1m�[33m 21.79 ns�[0m�[1m/iter�[0m �[90m 20.42 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                         �[90m(�[0m�[36m19.35 ns�[0m�[90m … �[0m�[35m108.88 ns�[0m�[90m)�[0m �[90m 43.54 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 64.00  b�[0m�[90m) �[0m�[33m  0.99  b�[0m �[36m██�[0m�[33m▃�[0m�[35m▁▂▃▁▁▁▁▁▁▁▁▁▁▂▁▁▁▁�[0m

getExpirationTime() - null       �[1m�[33m  1.25 ns�[0m�[1m/iter�[0m �[90m574.71 ps�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                         �[90m(�[0m�[36m547.85 ps�[0m�[90m … �[0m�[35m16.92 ns�[0m�[90m)�[0m �[90m  7.48 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 32.00  b�[0m�[90m) �[0m�[33m  0.02  b�[0m �[36m█▁�[0m�[33m▁�[0m�[35m▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃�[0m

�[1msummary�[0m
  �[1m�[36misExpired() - null�[0m
   �[32m5.71�[0mx faster than �[1m�[36mgetExpirationTime() - null�[0m
   �[32m99.4�[0mx faster than �[1m�[36mgetExpirationTime() - valid date�[0m
   �[32m912.49�[0mx faster than �[1m�[36misExpired() - past date�[0m
   �[32m916.2�[0mx faster than �[1m�[36misExpired() - future date�[0m
�[90mclk: ~1.57 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                        avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------------ -------------------------------
hasScope() - found (3 scopes)     �[1m�[33m  9.68 ns�[0m�[1m/iter�[0m �[90m  9.42 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                            �[90m(�[0m�[36m9.41 ns�[0m�[90m … �[0m�[35m35.49 ns�[0m�[90m)�[0m �[90m 16.03 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                         �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 32.00  b�[0m�[90m) �[0m�[33m  0.03  b�[0m �[36m█�[0m�[33m▂�[0m�[35m▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasScope() - not found (3 scopes) �[1m�[33m 15.07 ns�[0m�[1m/iter�[0m �[90m 14.20 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                           �[90m(�[0m�[36m14.19 ns�[0m�[90m … �[0m�[35m50.90 ns�[0m�[90m)�[0m �[90m 34.13 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                         �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 64.00  b�[0m�[90m) �[0m�[33m  0.05  b�[0m �[36m█�[0m�[33m▁�[0m�[35m▂▅▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasScope() - found (50 scopes)    �[1m�[33m160.90 ns�[0m�[1m/iter�[0m �[90m161.18 ns�[0m �[36m       �[0m�[33m█�[0m�[35m             �[0m
                         �[90m(�[0m�[36m155.39 ns�[0m�[90m … �[0m�[35m315.99 ns�[0m�[90m)�[0m �[90m172.30 ns�[0m �[36m     ▆ �[0m�[33m█�[0m�[35m             �[0m
                         �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 96.00  b�[0m�[90m) �[0m�[33m  0.21  b�[0m �[36m▃▁▃▂▂█▁�[0m�[33m█�[0m�[35m▃▂▁▁▁▁▁▁▁▁▁▁▁�[0m

hasAnyScope() - first match       �[1m�[33m 19.16 ns�[0m�[1m/iter�[0m �[90m 17.52 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                          �[90m(�[0m�[36m16.63 ns�[0m�[90m … �[0m�[35m136.67 ns�[0m�[90m)�[0m �[90m 83.02 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                         �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m224.00  b�[0m�[90m) �[0m�[33m  0.67  b�[0m �[36m█�[0m�[33m▃�[0m�[35m▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasAnyScope() - no match          �[1m�[33m 41.48 ns�[0m�[1m/iter�[0m �[90m 39.58 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                          �[90m(�[0m�[36m38.55 ns�[0m�[90m … �[0m�[35m158.99 ns�[0m�[90m)�[0m �[90m105.85 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                         �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m128.00  b�[0m�[90m) �[0m�[33m  1.11  b�[0m �[36m█�[0m�[33m▆�[0m�[35m▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasAllScopes() - all match        �[1m�[33m 28.34 ns�[0m�[1m/iter�[0m �[90m 26.97 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                          �[90m(�[0m�[36m26.02 ns�[0m�[90m … �[0m�[35m115.74 ns�[0m�[90m)�[0m �[90m 91.77 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                         �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 64.00  b�[0m�[90m) �[0m�[33m  0.04  b�[0m �[36m█�[0m�[33m▄�[0m�[35m▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasAllScopes() - partial match    �[1m�[33m 41.37 ns�[0m�[1m/iter�[0m �[90m 40.23 ns�[0m �[36m �[0m�[33m█�[0m�[35m                   �[0m
                          �[90m(�[0m�[36m37.66 ns�[0m�[90m … �[0m�[35m118.33 ns�[0m�[90m)�[0m �[90m104.70 ns�[0m �[36m▄�[0m�[33m█�[0m�[35m                   �[0m
                         �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 32.00  b�[0m�[90m) �[0m�[33m  0.01  b�[0m �[36m█�[0m�[33m█�[0m�[35m▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

�[1msummary�[0m
  �[1m�[36mhasScope() - found (3 scopes)�[0m
   �[32m1.56�[0mx faster than �[1m�[36mhasScope() - not found (3 scopes)�[0m
   �[32m1.98�[0mx faster than �[1m�[36mhasAnyScope() - first match�[0m
   �[32m2.93�[0mx faster than �[1m�[36mhasAllScopes() - all match�[0m
   �[32m4.27�[0mx faster than �[1m�[36mhasAllScopes() - partial match�[0m
   �[32m4.29�[0mx faster than �[1m�[36mhasAnyScope() - no match�[0m
   �[32m16.63�[0mx faster than �[1m�[36mhasScope() - found (50 scopes)�[0m
�[90mclk: ~1.58 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                                   avg (min … max) p75 / p99    (min … top 1%)
----------------------------------------------------------- -------------------------------
hasScopeWithResources() - global scope       �[1m�[33m  9.32 ns�[0m�[1m/iter�[0m �[90m  9.11 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                                       �[90m(�[0m�[36m9.11 ns�[0m�[90m … �[0m�[35m22.43 ns�[0m�[90m)�[0m �[90m 12.81 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 64.00  b�[0m�[90m) �[0m�[33m  0.05  b�[0m �[36m█�[0m�[33m▂�[0m�[35m▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▂�[0m

hasScopeWithResources() - resource scope     �[1m�[33m 26.81 ns�[0m�[1m/iter�[0m �[90m 28.61 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                                      �[90m(�[0m�[36m25.14 ns�[0m�[90m … �[0m�[35m89.04 ns�[0m�[90m)�[0m �[90m 56.52 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 96.00  b�[0m�[90m) �[0m�[33m  0.15  b�[0m �[36m█�[0m�[33m▃�[0m�[35m█▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasAnyScopeWithResources() - global match    �[1m�[33m 14.39 ns�[0m�[1m/iter�[0m �[90m 14.44 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                                     �[90m(�[0m�[36m10.16 ns�[0m�[90m … �[0m�[35m197.57 ns�[0m�[90m)�[0m �[90m 76.43 ns�[0m �[36m█�[0m�[33m▅�[0m�[35m                   �[0m
                                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m128.00  b�[0m�[90m) �[0m�[33m  0.66  b�[0m �[36m█�[0m�[33m█�[0m�[35m▆▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

hasAllScopesWithResources() - resource match �[1m�[33m 57.29 ns�[0m�[1m/iter�[0m �[90m 53.53 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                                     �[90m(�[0m�[36m50.51 ns�[0m�[90m … �[0m�[35m328.33 ns�[0m�[90m)�[0m �[90m128.74 ns�[0m �[36m█▂�[0m�[33m �[0m�[35m                  �[0m
                                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m288.00  b�[0m�[90m) �[0m�[33m  1.08  b�[0m �[36m██�[0m�[33m▂�[0m�[35m▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▁▁�[0m

�[1msummary�[0m
  �[1m�[36mhasScopeWithResources() - global scope�[0m
   �[32m1.54�[0mx faster than �[1m�[36mhasAnyScopeWithResources() - global match�[0m
   �[32m2.88�[0mx faster than �[1m�[36mhasScopeWithResources() - resource scope�[0m
   �[32m6.15�[0mx faster than �[1m�[36mhasAllScopesWithResources() - resource match�[0m
�[90mclk: ~1.58 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                               avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------------------- -------------------------------
ResourceBuilder.add() - single           �[1m�[33m 44.72 ns�[0m�[1m/iter�[0m �[90m 40.62 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                                 �[90m(�[0m�[36m37.97 ns�[0m�[90m … �[0m�[35m254.68 ns�[0m�[90m)�[0m �[90m124.52 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m160.00  b�[0m�[90m) �[0m�[33m  1.47  b�[0m �[36m█▆�[0m�[33m▂�[0m�[35m▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

ResourceBuilder.addMany() - 10 resources �[1m�[33m949.29 ns�[0m�[1m/iter�[0m �[90m939.24 ns�[0m �[36m█  �[0m�[33m �[0m�[35m                 �[0m
                                  �[90m(�[0m�[36m912.54 ns�[0m�[90m … �[0m�[35m1.50 µs�[0m�[90m)�[0m �[90m  1.18 µs�[0m �[36m█▆ �[0m�[33m �[0m�[35m                 �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m192.00  b�[0m�[90m) �[0m�[33m  1.45  b�[0m �[36m██▃�[0m�[33m▂�[0m�[35m▁▁▂▄▃▂▂▂▁▁▁▁▁▁▁▁▁�[0m

ResourceBuilder.build() - 3 resources    �[1m�[33m164.14 ns�[0m�[1m/iter�[0m �[90m158.87 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[36m154.06 ns�[0m�[90m … �[0m�[35m314.01 ns�[0m�[90m)�[0m �[90m240.07 ns�[0m �[36m▄█�[0m�[33m �[0m�[35m                  �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 32.00  b�[0m�[90m) �[0m�[33m  0.13  b�[0m �[36m██�[0m�[33m▃�[0m�[35m▂▂▁▁▁▁▁▁▁▁▁▁▁▂▂▁▁▁�[0m

ResourceBuilder.from()                   �[1m�[33m 26.41 ns�[0m�[1m/iter�[0m �[90m 25.86 ns�[0m �[36m �[0m�[33m█�[0m�[35m                   �[0m
                                 �[90m(�[0m�[36m21.91 ns�[0m�[90m … �[0m�[35m147.63 ns�[0m�[90m)�[0m �[90m 89.94 ns�[0m �[36m▇�[0m�[33m█�[0m�[35m                   �[0m
                                �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 64.00  b�[0m�[90m) �[0m�[33m  0.17  b�[0m �[36m█�[0m�[33m█�[0m�[35m█▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

�[1msummary�[0m
  �[1m�[36mResourceBuilder.from()�[0m
   �[32m1.69�[0mx faster than �[1m�[36mResourceBuilder.add() - single�[0m
   �[32m6.22�[0mx faster than �[1m�[36mResourceBuilder.build() - 3 resources�[0m
   �[32m35.95�[0mx faster than �[1m�[36mResourceBuilder.addMany() - 10 resources�[0m
�[90mclk: ~1.56 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
MemoryCache.set()            �[1m�[33m 54.67 ns�[0m�[1m/iter�[0m �[90m 54.86 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                     �[90m(�[0m�[36m52.59 ns�[0m�[90m … �[0m�[35m142.47 ns�[0m�[90m)�[0m �[90m 88.11 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 96.00  b�[0m�[90m) �[0m�[33m  0.39  b�[0m �[36m█�[0m�[33m▆�[0m�[35m▃▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

MemoryCache.get() - hit      �[1m�[33m 55.23 ns�[0m�[1m/iter�[0m �[90m 55.43 ns�[0m �[36m█ �[0m�[33m▇�[0m�[35m                  �[0m
                      �[90m(�[0m�[36m52.84 ns�[0m�[90m … �[0m�[35m97.48 ns�[0m�[90m)�[0m �[90m 80.94 ns�[0m �[36m█ �[0m�[33m█�[0m�[35m                  �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 64.00  b�[0m�[90m) �[0m�[33m  0.19  b�[0m �[36m█▆�[0m�[33m█�[0m�[35m▆▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

MemoryCache.get() - miss     �[1m�[33m 12.79 ns�[0m�[1m/iter�[0m �[90m 15.36 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                      �[90m(�[0m�[36m10.80 ns�[0m�[90m … �[0m�[35m50.30 ns�[0m�[90m)�[0m �[90m 31.89 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 96.00  b�[0m�[90m) �[0m�[33m  0.10  b�[0m �[36m█▁�[0m�[33m▂�[0m�[35m▁█▄▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

MemoryCache.del()            �[1m�[33m161.83 ns�[0m�[1m/iter�[0m �[90m134.11 ns�[0m �[36m▆█ �[0m�[33m �[0m�[35m                 �[0m
                    �[90m(�[0m�[36m113.92 ns�[0m�[90m … �[0m�[35m507.38 ns�[0m�[90m)�[0m �[90m437.71 ns�[0m �[36m██ �[0m�[33m �[0m�[35m                 �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m640.00  b�[0m�[90m) �[0m�[33m 11.25  b�[0m �[36m██▃�[0m�[33m▁�[0m�[35m▁▁▁▁▂▂▁▁▁▂▃▂▂▂▂▁▁�[0m

�[1msummary�[0m
  �[1m�[36mMemoryCache.get() - miss�[0m
   �[32m4.27�[0mx faster than �[1m�[36mMemoryCache.set()�[0m
   �[32m4.32�[0mx faster than �[1m�[36mMemoryCache.get() - hit�[0m
   �[32m12.65�[0mx faster than �[1m�[36mMemoryCache.del()�[0m

━━━ High-Level API ━━━

�[90mclk: ~1.53 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                     avg (min … max) p75 / p99    (min … top 1%)
--------------------------------------------- -------------------------------
manager.generateKey()          �[1m�[33m675.87 ns�[0m�[1m/iter�[0m �[90m705.69 ns�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                        �[90m(�[0m�[36m622.16 ns�[0m�[90m … �[0m�[35m1.43 µs�[0m�[90m)�[0m �[90m  1.20 µs�[0m �[36m█ �[0m�[33m �[0m�[35m                  �[0m
                      �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.13 kb�[0m�[90m) �[0m�[33m 21.85  b�[0m �[36m█▂�[0m�[33m▁�[0m�[35m▆▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂�[0m

manager.hashKey()              �[1m�[33m586.20 ns�[0m�[1m/iter�[0m �[90m546.77 ns�[0m �[36m█▆�[0m�[33m �[0m�[35m                  �[0m
                        �[90m(�[0m�[36m523.60 ns�[0m�[90m … �[0m�[35m1.16 µs�[0m�[90m)�[0m �[90m  1.13 µs�[0m �[36m██�[0m�[33m �[0m�[35m                  �[0m
                      �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m288.00  b�[0m�[90m) �[0m�[33m  9.43  b�[0m �[36m██�[0m�[33m▁�[0m�[35m▁▁▂▂▁▁▁▁▁▁▂▂▂▁▁▁▂▂�[0m

manager.validateKey()          �[1m�[33m  1.67 µs�[0m�[1m/iter�[0m �[90m  1.97 µs�[0m �[36m █   �[0m�[33m �[0m�[35m               �[0m
                          �[90m(�[0m�[36m1.47 µs�[0m�[90m … �[0m�[35m2.28 µs�[0m�[90m)�[0m �[90m  2.28 µs�[0m �[36m▅█   �[0m�[33m �[0m�[35m               �[0m
                      �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m416.00  b�[0m�[90m) �[0m�[33m 10.67  b�[0m �[36m███▃▁�[0m�[33m▁�[0m�[35m▁▁▁▁▁▁▂▇▂▂▂▂▄▃▂�[0m

manager.extractKey() - Headers �[1m�[33m761.70 ns�[0m�[1m/iter�[0m �[90m762.97 ns�[0m �[36m    █�[0m�[33m▃�[0m�[35m               �[0m
                        �[90m(�[0m�[36m659.43 ns�[0m�[90m … �[0m�[35m1.10 µs�[0m�[90m)�[0m �[90m  1.06 µs�[0m �[36m    █�[0m�[33m█�[0m�[35m               �[0m
                      �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.50 kb�[0m�[90m) �[0m�[33m 66.75  b�[0m �[36m▄▅▂▄█�[0m�[33m█�[0m�[35m▅▂▂▁▁▁▂▁▁▁▁▁▁▂▂�[0m

manager.hasKey()               �[1m�[33m746.19 ns�[0m�[1m/iter�[0m �[90m782.97 ns�[0m �[36m     █  �[0m�[33m▃�[0m�[35m█           �[0m
                        �[90m(�[0m�[36m539.01 ns�[0m�[90m … �[0m�[35m1.09 µs�[0m�[90m)�[0m �[90m  1.04 µs�[0m �[36m     █▂ �[0m�[33m█�[0m�[35m██          �[0m
                      �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.00 kb�[0m�[90m) �[0m�[33m 15.36  b�[0m �[36m▂▃▂▁▃██▇�[0m�[33m█�[0m�[35m██▇▆▂▂▁▂▂▁▂▂�[0m

�[1msummary�[0m
  �[1m�[36mmanager.hashKey()�[0m
   �[32m1.15�[0mx faster than �[1m�[36mmanager.generateKey()�[0m
   �[32m1.27�[0mx faster than �[1m�[36mmanager.hasKey()�[0m
   �[32m1.3�[0mx faster than �[1m�[36mmanager.extractKey() - Headers�[0m
   �[32m2.85�[0mx faster than �[1m�[36mmanager.validateKey()�[0m
�[90mclk: ~1.58 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                    avg (min … max) p75 / p99    (min … top 1%)
-------------------------------------------- -------------------------------
verify() - valid key (fresh)  �[1m�[33m  3.45 µs�[0m�[1m/iter�[0m �[90m  3.54 µs�[0m �[36m█▄    �[0m�[33m �[0m�[35m ▄            �[0m
                         �[90m(�[0m�[36m3.21 µs�[0m�[90m … �[0m�[35m4.33 µs�[0m�[90m)�[0m �[90m  3.96 µs�[0m �[36m████▅▅�[0m�[33m �[0m�[35m █            �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  3.06 kb�[0m�[90m) �[0m�[33m180.07  b�[0m �[36m██████�[0m�[33m█�[0m�[35m▅█▅▅██▅█▁▁▁▁▅▅�[0m

verify() - valid key (cached) �[1m�[33m  2.84 µs�[0m�[1m/iter�[0m �[90m  2.92 µs�[0m �[36m ▃█   �[0m�[33m �[0m�[35m              �[0m
                         �[90m(�[0m�[36m2.68 µs�[0m�[90m … �[0m�[35m3.30 µs�[0m�[90m)�[0m �[90m  3.25 µs�[0m �[36m ██▅▂ �[0m�[33m �[0m�[35m▅ ▂▂          �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.38 kb�[0m�[90m) �[0m�[33m 59.35  b�[0m �[36m█████▃�[0m�[33m█�[0m�[35m████▆▁▃▃▃▁▁▁▁▃�[0m

verify() - invalid key        �[1m�[33m  1.56 µs�[0m�[1m/iter�[0m �[90m  1.55 µs�[0m �[36m █  �[0m�[33m �[0m�[35m                �[0m
                         �[90m(�[0m�[36m1.45 µs�[0m�[90m … �[0m�[35m2.11 µs�[0m�[90m)�[0m �[90m  1.97 µs�[0m �[36m▅█▇ �[0m�[33m �[0m�[35m                �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.63 kb�[0m�[90m) �[0m�[33m 52.81  b�[0m �[36m███▇�[0m�[33m▃�[0m�[35m▁▂▁▁▂▅▄▄▂▁▂▂▂▁▂▂�[0m

verifyFromHeaders()           �[1m�[33m  4.20 µs�[0m�[1m/iter�[0m �[90m  4.31 µs�[0m �[36m █▃▃   �[0m�[33m �[0m�[35m   ▃         �[0m
                         �[90m(�[0m�[36m3.98 µs�[0m�[90m … �[0m�[35m4.97 µs�[0m�[90m)�[0m �[90m  4.64 µs�[0m �[36m▂███▂▂▂�[0m�[33m▂�[0m�[35m ▂▂█▂        �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.84 kb�[0m�[90m) �[0m�[33m218.67  b�[0m �[36m███████�[0m�[33m█�[0m�[35m▆████▁▁▆▁▁▁▁▆�[0m

�[1msummary�[0m
  �[1m�[36mverify() - invalid key�[0m
   �[32m1.82�[0mx faster than �[1m�[36mverify() - valid key (cached)�[0m
   �[32m2.21�[0mx faster than �[1m�[36mverify() - valid key (fresh)�[0m
   �[32m2.69�[0mx faster than �[1m�[36mverifyFromHeaders()�[0m
�[90mclk: ~1.58 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
create()                     �[1m�[33m  8.63 µs�[0m�[1m/iter�[0m �[90m  8.76 µs�[0m �[36m █▇  �[0m�[33m �[0m�[35m               �[0m
                        �[90m(�[0m�[36m4.36 µs�[0m�[90m … �[0m�[35m2.50 ms�[0m�[90m)�[0m �[90m 22.89 µs�[0m �[36m ███▅�[0m�[33m �[0m�[35m               �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 12.00 mb�[0m�[90m) �[0m�[33m  2.41 kb�[0m �[36m▂████�[0m�[33m█�[0m�[35m▆▅▄▃▂▂▂▂▁▁▁▁▁▁▁�[0m

findById()                   �[1m�[33m392.73 ns�[0m�[1m/iter�[0m �[90m395.91 ns�[0m �[36m █ �[0m�[33m �[0m�[35m                 �[0m
                    �[90m(�[0m�[36m349.37 ns�[0m�[90m … �[0m�[35m776.70 ns�[0m�[90m)�[0m �[90m678.46 ns�[0m �[36m▂█▅�[0m�[33m �[0m�[35m                 �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.09 kb�[0m�[90m) �[0m�[33m 27.96  b�[0m �[36m███�[0m�[33m▆�[0m�[35m▅▃▃▂▂▁▁▁▁▁▁▁▁▁▁▂▂�[0m

findByHash()                 �[1m�[33m383.16 ns�[0m�[1m/iter�[0m �[90m393.60 ns�[0m �[36m █   �[0m�[33m �[0m�[35m               �[0m
                    �[90m(�[0m�[36m351.30 ns�[0m�[90m … �[0m�[35m768.45 ns�[0m�[90m)�[0m �[90m469.10 ns�[0m �[36m▅█   �[0m�[33m �[0m�[35m▅              �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m352.00  b�[0m�[90m) �[0m�[33m  2.91  b�[0m �[36m██▇▇▇�[0m�[33m▆�[0m�[35m█▇▃▄▄▄▂▂▃▂▄▂▂▃▂�[0m

list() - single owner        �[1m�[33m765.17 ns�[0m�[1m/iter�[0m �[90m774.12 ns�[0m �[36m █ ▄ ▅�[0m�[33m �[0m�[35m              �[0m
                      �[90m(�[0m�[36m713.91 ns�[0m�[90m … �[0m�[35m1.22 µs�[0m�[90m)�[0m �[90m890.18 ns�[0m �[36m █▄█▆█�[0m�[33m �[0m�[35m              �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m480.00  b�[0m�[90m) �[0m�[33m  8.62  b�[0m �[36m▂█████�[0m�[33m█�[0m�[35m██▄▅▃▃▄▄▃▂▂▁▁▂�[0m

updateLastUsed()             �[1m�[33m815.63 ns�[0m�[1m/iter�[0m �[90m820.46 ns�[0m �[36m █▅ �[0m�[33m �[0m�[35m                �[0m
                    �[90m(�[0m�[36m785.48 ns�[0m�[90m … �[0m�[35m931.94 ns�[0m�[90m)�[0m �[90m920.64 ns�[0m �[36m ██▅�[0m�[33m �[0m�[35m                �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m384.00  b�[0m�[90m) �[0m�[33m 12.52  b�[0m �[36m▅███�[0m�[33m▇�[0m�[35m▄▄▃▃▅▄▂▂▂▁▁▂▁▁▂▂�[0m

�[1msummary�[0m
  �[1m�[36mfindByHash()�[0m
   �[32m1.02�[0mx faster than �[1m�[36mfindById()�[0m
   �[32m2�[0mx faster than �[1m�[36mlist() - single owner�[0m
   �[32m2.13�[0mx faster than �[1m�[36mupdateLastUsed()�[0m
   �[32m22.51�[0mx faster than �[1m�[36mcreate()�[0m
�[90mclk: ~3.06 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
findByTag()                  �[1m�[33m  1.71 µs�[0m�[1m/iter�[0m �[90m  1.73 µs�[0m �[36m ▆█ �[0m�[33m �[0m�[35m                �[0m
                        �[90m(�[0m�[36m1.64 µs�[0m�[90m … �[0m�[35m2.17 µs�[0m�[90m)�[0m �[90m  1.99 µs�[0m �[36m ██▂�[0m�[33m▆�[0m�[35m▃               �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m800.00  b�[0m�[90m) �[0m�[33m 17.33  b�[0m �[36m▅███�[0m�[33m█�[0m�[35m█▆▄▇▂▁▂▁▁▁▁▁▂▁▁▂�[0m

findByTag() - with owner     �[1m�[33m  2.07 µs�[0m�[1m/iter�[0m �[90m  2.08 µs�[0m �[36m  █▄ �[0m�[33m �[0m�[35m               �[0m
                        �[90m(�[0m�[36m2.00 µs�[0m�[90m … �[0m�[35m2.71 µs�[0m�[90m)�[0m �[90m  2.28 µs�[0m �[36m▄▂███�[0m�[33m▇�[0m�[35m▄▄ ▂           �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m640.00  b�[0m�[90m) �[0m�[33m 23.38  b�[0m �[36m█████�[0m�[33m█�[0m�[35m██▃█▁▅▅▃▁▁▁▁▃▁▃�[0m

findByTags() - multiple      �[1m�[33m  5.23 µs�[0m�[1m/iter�[0m �[90m  5.27 µs�[0m �[36m █▃�[0m�[33m �[0m�[35m                 �[0m
                      �[90m(�[0m�[36m4.19 µs�[0m�[90m … �[0m�[35m430.85 µs�[0m�[90m)�[0m �[90m 11.64 µs�[0m �[36m ██�[0m�[33m▃�[0m�[35m                 �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m128.00 kb�[0m�[90m) �[0m�[33m 53.67  b�[0m �[36m▂██�[0m�[33m█�[0m�[35m▅▃▂▂▂▁▁▁▁▁▁▁▁▁▁▁▁�[0m

�[1msummary�[0m
  �[1m�[36mfindByTag()�[0m
   �[32m1.21�[0mx faster than �[1m�[36mfindByTag() - with owner�[0m
   �[32m3.06�[0mx faster than �[1m�[36mfindByTags() - multiple�[0m
�[90mclk: ~3.09 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
enable()                     �[1m�[33m  3.05 µs�[0m�[1m/iter�[0m �[90m  3.05 µs�[0m �[36m  █▃▅ �[0m�[33m �[0m�[35m              �[0m
                        �[90m(�[0m�[36m2.88 µs�[0m�[90m … �[0m�[35m3.49 µs�[0m�[90m)�[0m �[90m  3.48 µs�[0m �[36m▃▆███▃�[0m�[33m �[0m�[35m              �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.09 kb�[0m�[90m) �[0m�[33m320.00  b�[0m �[36m██████�[0m�[33m▆�[0m�[35m▄▁▄▁▁▁▁▆▆▆▄▄▁▄�[0m

disable()                    �[1m�[33m  3.02 µs�[0m�[1m/iter�[0m �[90m  3.07 µs�[0m �[36m           �[0m�[33m▅�[0m�[35m█        �[0m
                        �[90m(�[0m�[36m2.90 µs�[0m�[90m … �[0m�[35m3.15 µs�[0m�[90m)�[0m �[90m  3.13 µs�[0m �[36m    ▃▃▃▃ █▃�[0m�[33m█�[0m�[35m█    ▃▃  �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m768.00  b�[0m�[90m) �[0m�[33m 35.14  b�[0m �[36m▄▄▄▁███████�[0m�[33m█�[0m�[35m█▁██▄███▄�[0m

rotate()                     �[1m�[33m 19.76 µs�[0m�[1m/iter�[0m �[90m 20.27 µs�[0m �[36m  ▃█▇▂�[0m�[33m �[0m�[35m              �[0m
                       �[90m(�[0m�[36m12.20 µs�[0m�[90m … �[0m�[35m3.65 ms�[0m�[90m)�[0m �[90m 39.44 µs�[0m �[36m  ████�[0m�[33m▄�[0m�[35m              �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  8.00 mb�[0m�[90m) �[0m�[33m  2.69 kb�[0m �[36m▁█████�[0m�[33m█�[0m�[35m█▆▄▃▂▂▂▂▂▁▁▁▁▁�[0m

�[1msummary�[0m
  �[1m�[36mdisable()�[0m
   �[32m1.01�[0mx faster than �[1m�[36menable()�[0m
   �[32m6.54�[0mx faster than �[1m�[36mrotate()�[0m
�[90mclk: ~3.08 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
manager.hasScope()           �[1m�[33m  9.67 ns�[0m�[1m/iter�[0m �[90m  9.42 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                       �[90m(�[0m�[36m9.41 ns�[0m�[90m … �[0m�[35m40.29 ns�[0m�[90m)�[0m �[90m 13.43 ns�[0m �[36m█�[0m�[33m �[0m�[35m                   �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 32.00  b�[0m�[90m) �[0m�[33m  0.04  b�[0m �[36m█�[0m�[33m▁�[0m�[35m▁▁▁▁▁▁▁▂▁▁▁▁▁▁▁▁▁▁▂�[0m

manager.hasAnyScope()        �[1m�[33m 21.13 ns�[0m�[1m/iter�[0m �[90m 19.45 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                     �[90m(�[0m�[36m15.11 ns�[0m�[90m … �[0m�[35m158.52 ns�[0m�[90m)�[0m �[90m 72.91 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m192.00  b�[0m�[90m) �[0m�[33m  3.80  b�[0m �[36m▇█�[0m�[33m▆�[0m�[35m▂▁▁▁▁▁▁▁▁▁▂▁▁▁▁▁▁▁�[0m

manager.hasAllScopes()       �[1m�[33m 54.36 ns�[0m�[1m/iter�[0m �[90m 55.48 ns�[0m �[36m █ �[0m�[33m �[0m�[35m                 �[0m
                     �[90m(�[0m�[36m49.79 ns�[0m�[90m … �[0m�[35m171.72 ns�[0m�[90m)�[0m �[90m 81.80 ns�[0m �[36m██▂�[0m�[33m �[0m�[35m▂                �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 96.00  b�[0m�[90m) �[0m�[33m  0.12  b�[0m �[36m███�[0m�[33m█�[0m�[35m█▅▂▂▂▁▁▂▁▁▁▁▁▁▁▁▁�[0m

manager.checkResourceScope() �[1m�[33m 15.34 ns�[0m�[1m/iter�[0m �[90m 16.68 ns�[0m �[36m█    �[0m�[33m �[0m�[35m               �[0m
                      �[90m(�[0m�[36m14.11 ns�[0m�[90m … �[0m�[35m35.61 ns�[0m�[90m)�[0m �[90m 18.88 ns�[0m �[36m█    �[0m�[33m �[0m�[35m     █         �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 64.00  b�[0m�[90m) �[0m�[33m  0.15  b�[0m �[36m█▁▁▁▁�[0m�[33m▁�[0m�[35m▁▁▂▁▁█▁▁▁▁▁▁▁▂▁�[0m

�[1msummary�[0m
  �[1m�[36mmanager.hasScope()�[0m
   �[32m1.59�[0mx faster than �[1m�[36mmanager.checkResourceScope()�[0m
   �[32m2.19�[0mx faster than �[1m�[36mmanager.hasAnyScope()�[0m
   �[32m5.62�[0mx faster than �[1m�[36mmanager.hasAllScopes()�[0m

━━━ Bulk Operations ━━━

�[90mclk: ~3.09 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                    avg (min … max) p75 / p99    (min … top 1%)
-------------------------------------------- -------------------------------
list() - 10 owners parallel   �[1m�[33m 12.31 µs�[0m�[1m/iter�[0m �[90m 13.47 µs�[0m �[36m █ �[0m�[33m �[0m�[35m                 �[0m
                       �[90m(�[0m�[36m7.78 µs�[0m�[90m … �[0m�[35m534.64 µs�[0m�[90m)�[0m �[90m 34.50 µs�[0m �[36m █▃�[0m�[33m �[0m�[35m                 �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m256.00 kb�[0m�[90m) �[0m�[33m  3.27 kb�[0m �[36m▅██�[0m�[33m▇�[0m�[35m▅▄▄▃▂▂▂▂▁▁▁▁▁▁▁▁▁�[0m

verify() - 10 keys parallel   �[1m�[33m 31.06 µs�[0m�[1m/iter�[0m �[90m 32.52 µs�[0m �[36m █▂ �[0m�[33m �[0m�[35m                �[0m
                        �[90m(�[0m�[36m21.36 µs�[0m�[90m … �[0m�[35m2.17 ms�[0m�[90m)�[0m �[90m 73.97 µs�[0m �[36m ██▅�[0m�[33m �[0m�[35m                �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m384.00 kb�[0m�[90m) �[0m�[33m  5.35 kb�[0m �[36m▄███�[0m�[33m▇�[0m�[35m▅▄▃▃▃▂▂▂▂▁▁▁▁▁▁▁�[0m

create() - 10 keys parallel   �[1m�[33m 74.06 µs�[0m�[1m/iter�[0m �[90m 74.69 µs�[0m �[36m  ▄█  �[0m�[33m �[0m�[35m              �[0m
                        �[90m(�[0m�[36m48.22 µs�[0m�[90m … �[0m�[35m6.23 ms�[0m�[90m)�[0m �[90m135.76 µs�[0m �[36m  ███▂�[0m�[33m �[0m�[35m              �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m 16.00 mb�[0m�[90m) �[0m�[33m 16.33 kb�[0m �[36m▁▇████�[0m�[33m█�[0m�[35m▆▅▃▃▂▂▂▂▂▂▂▂▁▁�[0m

findById() - 10 keys parallel �[1m�[33m  3.55 µs�[0m�[1m/iter�[0m �[90m  3.51 µs�[0m �[36m█▆ �[0m�[33m �[0m�[35m                 �[0m
                         �[90m(�[0m�[36m3.10 µs�[0m�[90m … �[0m�[35m5.81 µs�[0m�[90m)�[0m �[90m  5.71 µs�[0m �[36m███�[0m�[33m �[0m�[35m ▃               �[0m
                     �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  6.28 kb�[0m�[90m) �[0m�[33m700.79  b�[0m �[36m███�[0m�[33m▅�[0m�[35m▁█▁▃▁▃▁▁▁▁▁▁▃▁▁▃▃�[0m

�[1msummary�[0m
  �[1m�[36mfindById() - 10 keys parallel�[0m
   �[32m3.47�[0mx faster than �[1m�[36mlist() - 10 owners parallel�[0m
   �[32m8.76�[0mx faster than �[1m�[36mverify() - 10 keys parallel�[0m
   �[32m20.88�[0mx faster than �[1m�[36mcreate() - 10 keys parallel�[0m

━━━ Concurrency Stress Tests ━━━

�[90mclk: ~3.07 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                       avg (min … max) p75 / p99    (min … top 1%)
----------------------------------------------- -------------------------------
verify() - 50 concurrent         �[1m�[33m 81.12 µs�[0m�[1m/iter�[0m �[90m 97.77 µs�[0m �[36m ██   �[0m�[33m �[0m�[35m              �[0m
                           �[90m(�[0m�[36m55.07 µs�[0m�[90m … �[0m�[35m1.15 ms�[0m�[90m)�[0m �[90m147.54 µs�[0m �[36m ██▃  �[0m�[33m �[0m�[35m              �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  1.00 mb�[0m�[90m) �[0m�[33m 25.53 kb�[0m �[36m▃████▇�[0m�[33m▅�[0m�[35m▄▄▆█▇▆▄▃▂▂▂▁▁▁�[0m

verify() - 100 concurrent        �[1m�[33m135.50 µs�[0m�[1m/iter�[0m �[90m140.45 µs�[0m �[36m  █▂▃�[0m�[33m �[0m�[35m               �[0m
                          �[90m(�[0m�[36m112.96 µs�[0m�[90m … �[0m�[35m5.10 ms�[0m�[90m)�[0m �[90m197.25 µs�[0m �[36m ▃███�[0m�[33m▆�[0m�[35m▄▂             �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m384.00 kb�[0m�[90m) �[0m�[33m  8.18 kb�[0m �[36m▂████�[0m�[33m█�[0m�[35m██▇▆▄▃▂▂▂▂▂▁▂▂▁�[0m

mixed operations - 50 concurrent �[1m�[33m 64.03 µs�[0m�[1m/iter�[0m �[90m 66.18 µs�[0m �[36m  █▄�[0m�[33m �[0m�[35m                �[0m
                         �[90m(�[0m�[36m52.19 µs�[0m�[90m … �[0m�[35m278.65 µs�[0m�[90m)�[0m �[90m108.41 µs�[0m �[36m ▅██�[0m�[33m▅�[0m�[35m                �[0m
                        �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m256.00 kb�[0m�[90m) �[0m�[33m  3.64 kb�[0m �[36m▂███�[0m�[33m█�[0m�[35m█▆▅▃▃▂▂▂▂▂▂▁▁▁▁▁�[0m

�[1msummary�[0m
  �[1m�[36mmixed operations - 50 concurrent�[0m
   �[32m1.27�[0mx faster than �[1m�[36mverify() - 50 concurrent�[0m
   �[32m2.12�[0mx faster than �[1m�[36mverify() - 100 concurrent�[0m

━━━ Storage Layer ━━━

�[90mclk: ~3.09 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
storage.findById()           �[1m�[33m266.73 ns�[0m�[1m/iter�[0m �[90m264.86 ns�[0m �[36m █�[0m�[33m �[0m�[35m                  �[0m
                    �[90m(�[0m�[36m243.21 ns�[0m�[90m … �[0m�[35m626.24 ns�[0m�[90m)�[0m �[90m470.96 ns�[0m �[36m▃█�[0m�[33m▂�[0m�[35m                  �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m448.00  b�[0m�[90m) �[0m�[33m  4.95  b�[0m �[36m██�[0m�[33m█�[0m�[35m▄▂▂▁▂▁▁▁▁▁▁▁▁▁▁▁▁▁�[0m

storage.findByHash()         �[1m�[33m272.18 ns�[0m�[1m/iter�[0m �[90m273.88 ns�[0m �[36m █▄�[0m�[33m �[0m�[35m                 �[0m
                    �[90m(�[0m�[36m253.62 ns�[0m�[90m … �[0m�[35m494.45 ns�[0m�[90m)�[0m �[90m389.82 ns�[0m �[36m███�[0m�[33m▄�[0m�[35m▂                �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m224.00  b�[0m�[90m) �[0m�[33m  1.34  b�[0m �[36m███�[0m�[33m█�[0m�[35m█▃▂▁▁▂▁▂▂▁▁▁▁▁▁▁▂�[0m

storage.findByOwner()        �[1m�[33m630.69 ns�[0m�[1m/iter�[0m �[90m629.52 ns�[0m �[36m █ �[0m�[33m �[0m�[35m                 �[0m
                      �[90m(�[0m�[36m596.88 ns�[0m�[90m … �[0m�[35m1.21 µs�[0m�[90m)�[0m �[90m826.97 ns�[0m �[36m ██�[0m�[33m▃�[0m�[35m                 �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m960.00  b�[0m�[90m) �[0m�[33m  6.28  b�[0m �[36m███�[0m�[33m█�[0m�[35m▄▃▂▂▂▂▂▁▂▂▁▁▁▁▁▁▁�[0m

storage.updateMetadata()     �[1m�[33m697.82 ns�[0m�[1m/iter�[0m �[90m707.64 ns�[0m �[36m █  �[0m�[33m▂�[0m�[35m                �[0m
                      �[90m(�[0m�[36m654.33 ns�[0m�[90m … �[0m�[35m1.11 µs�[0m�[90m)�[0m �[90m869.10 ns�[0m �[36m▂██▃�[0m�[33m█�[0m�[35m█               �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m544.00  b�[0m�[90m) �[0m�[33m 19.41  b�[0m �[36m████�[0m�[33m█�[0m�[35m█▇▆▃▃▂▂▁▁▁▁▁▁▁▂▁�[0m

storage.findByTag()          �[1m�[33m  1.75 µs�[0m�[1m/iter�[0m �[90m  1.76 µs�[0m �[36m  █  �[0m�[33m �[0m�[35m               �[0m
                        �[90m(�[0m�[36m1.70 µs�[0m�[90m … �[0m�[35m2.18 µs�[0m�[90m)�[0m �[90m  1.94 µs�[0m �[36m ▆██ �[0m�[33m█�[0m�[35m               �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m960.00  b�[0m�[90m) �[0m�[33m 11.23  b�[0m �[36m▃████�[0m�[33m█�[0m�[35m▇▅▁▄▁▁▂▁▃▂▂▁▁▁▂�[0m

storage.findByTags()         �[1m�[33m  4.38 µs�[0m�[1m/iter�[0m �[90m  4.41 µs�[0m �[36m  ▃ ▃  �[0m�[33m█�[0m�[35m             �[0m
                        �[90m(�[0m�[36m4.26 µs�[0m�[90m … �[0m�[35m4.65 µs�[0m�[90m)�[0m �[90m  4.59 µs�[0m �[36m▂▂█ █▇▇�[0m�[33m█�[0m�[35m  ▂▂         �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.97 kb�[0m�[90m) �[0m�[33m 96.44  b�[0m �[36m███▆███�[0m�[33m█�[0m�[35m▆▆██▆▁▁▆▁▁▁▆▆�[0m

�[1msummary�[0m
  �[1m�[36mstorage.findById()�[0m
   �[32m1.02�[0mx faster than �[1m�[36mstorage.findByHash()�[0m
   �[32m2.36�[0mx faster than �[1m�[36mstorage.findByOwner()�[0m
   �[32m2.62�[0mx faster than �[1m�[36mstorage.updateMetadata()�[0m
   �[32m6.57�[0mx faster than �[1m�[36mstorage.findByTag()�[0m
   �[32m16.42�[0mx faster than �[1m�[36mstorage.findByTags()�[0m

━━━ Audit Log Operations ━━━

�[90mclk: ~1.58 GHz�[0m
�[90mcpu: AMD EPYC 7763 64-Core Processor�[0m
�[90mruntime: bun 1.3.4 (x64-linux)�[0m

benchmark                   avg (min … max) p75 / p99    (min … top 1%)
------------------------------------------- -------------------------------
getLogs() - no filter        �[1m�[33m 78.19 ms�[0m�[1m/iter�[0m �[90m 79.80 ms�[0m �[36m█        �[0m�[33m �[0m�[35m  █        �[0m
                      �[90m(�[0m�[36m73.29 ms�[0m�[90m … �[0m�[35m91.30 ms�[0m�[90m)�[0m �[90m 84.11 ms�[0m �[36m█ ▅▅ ▅▅▅▅�[0m�[33m �[0m�[35m  █       ▅�[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  7.52 mb�[0m�[90m) �[0m�[33m  5.03 mb�[0m �[36m█▁██▁████�[0m�[33m▁�[0m�[35m▁▁█▁▁▁▁▁▁▁█�[0m

getLogs() - by keyId         �[1m�[33m 16.02 ms�[0m�[1m/iter�[0m �[90m 16.23 ms�[0m �[36m     █    �[0m�[33m �[0m�[35m          �[0m
                      �[90m(�[0m�[36m15.40 ms�[0m�[90m … �[0m�[35m16.81 ms�[0m�[90m)�[0m �[90m 16.66 ms�[0m �[36m  ▅  █ ▅  �[0m�[33m �[0m�[35m█▅    █   �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.38 mb�[0m�[90m) �[0m�[33m  1.19 mb�[0m �[36m▅▁█▅██▅█▅█�[0m�[33m▅�[0m�[35m███▅▁██▅▁▅�[0m

getLogs() - by ownerId       �[1m�[33m  9.14 ms�[0m�[1m/iter�[0m �[90m  9.53 ms�[0m �[36m ▅ ▅ █▅▅�[0m�[33m �[0m�[35m            �[0m
                       �[90m(�[0m�[36m8.47 ms�[0m�[90m … �[0m�[35m10.29 ms�[0m�[90m)�[0m �[90m 10.23 ms�[0m �[36m▆█▃█ ███�[0m�[33m█�[0m�[35m▃▆ ██▆      �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.38 mb�[0m�[90m) �[0m�[33m902.11 kb�[0m �[36m████████�[0m�[33m█�[0m�[35m██████▄▁▄▁▄▄�[0m

getLogs() - by action        �[1m�[33m 79.67 ms�[0m�[1m/iter�[0m �[90m 81.03 ms�[0m �[36m  █      �[0m�[33m �[0m�[35m█          �[0m
                      �[90m(�[0m�[36m76.11 ms�[0m�[90m … �[0m�[35m85.55 ms�[0m�[90m)�[0m �[90m 83.94 ms�[0m �[36m▅▅█▅ ▅   �[0m�[33m �[0m�[35m█  ▅     ▅▅�[0m
                    �[90m(�[0m�[33m768.00 kb�[0m�[90m … �[0m�[33m  3.63 mb�[0m�[90m) �[0m�[33m  2.82 mb�[0m �[36m████▁█▁▁▁�[0m�[33m▁�[0m�[35m█▁▁█▁▁▁▁▁██�[0m

countLogs()                  �[1m�[33m  7.64 ms�[0m�[1m/iter�[0m �[90m  7.81 ms�[0m �[36m     ▃ █�[0m�[33m█�[0m�[35m            �[0m
                        �[90m(�[0m�[36m6.46 ms�[0m�[90m … �[0m�[35m9.45 ms�[0m�[90m)�[0m �[90m  9.41 ms�[0m �[36m   ▂██▂█�[0m�[33m█�[0m�[35m ▂          �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.38 mb�[0m�[90m) �[0m�[33m  1.19 mb�[0m �[36m▆▁██████�[0m�[33m█�[0m�[35m██▃▁▃▁█▃▅█▅▃�[0m

getLogStats()                �[1m�[33m  9.40 ms�[0m�[1m/iter�[0m �[90m  9.67 ms�[0m �[36m          �[0m�[33m �[0m�[35m█▃        �[0m
                       �[90m(�[0m�[36m8.60 ms�[0m�[90m … �[0m�[35m10.95 ms�[0m�[90m)�[0m �[90m 10.24 ms�[0m �[36m▃ ▃▃ ▃ ▃▆ �[0m�[33m▃�[0m�[35m██   ▃▃   �[0m
                    �[90m(�[0m�[33m  0.00  b�[0m�[90m … �[0m�[33m  2.63 mb�[0m�[90m) �[0m�[33m886.63 kb�[0m �[36m█▆██▄█▆██▆�[0m�[33m█�[0m�[35m███▆▁██▄▄█�[0m

�[1msummary�[0m
  �[1m�[36mcountLogs()�[0m
   �[32m1.2�[0mx faster than �[1m�[36mgetLogs() - by ownerId�[0m
   �[32m1.23�[0mx faster than �[1m�[36mgetLogStats()�[0m
   �[32m2.1�[0mx faster than �[1m�[36mgetLogs() - by keyId�[0m
   �[32m10.23�[0mx faster than �[1m�[36mgetLogs() - no filter�[0m
   �[32m10.42�[0mx faster than �[1m�[36mgetLogs() - by action�[0m

✨ Benchmark complete!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant