Skip to content

chore(deps): bump the patch group with 2 updates#211

Merged
cb1kenobi merged 1 commit intomainfrom
dependabot/npm_and_yarn/patch-8300d49d59
Nov 3, 2025
Merged

chore(deps): bump the patch group with 2 updates#211
cb1kenobi merged 1 commit intomainfrom
dependabot/npm_and_yarn/patch-8300d49d59

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Nov 3, 2025

Bumps the patch group with 2 updates: esbuild and @esbuild/openharmony-arm64.

Updates esbuild from 0.25.11 to 0.25.12

Release notes

Sourced from esbuild's releases.

v0.25.12

  • Fix a minification regression with CSS media queries (#4315)

    The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

  • Update the list of known JavaScript globals (#4310)

    This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

    From ES2017:

    • Atomics
    • SharedArrayBuffer

    From ES2020:

    • BigInt64Array
    • BigUint64Array

    From ES2021:

    • FinalizationRegistry
    • WeakRef

    From ES2025:

    • Float16Array
    • Iterator

    Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

    // This can now be tree-shaken by esbuild:
    class ExampleIterator extends Iterator {}
  • Add support for the new @view-transition CSS rule (#4313)

    With this release, esbuild now has improved support for pretty-printing and minifying the new @view-transition rule (which esbuild was previously unaware of):

    /* Original code */
    @view-transition {
      navigation: auto;
      types: check;
    }
    /* Old output */
    @​view-transition { navigation: auto; types: check; }
    /* New output */
    @​view-transition {
    navigation: auto;
    types: check;

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.25.12

  • Fix a minification regression with CSS media queries (#4315)

    The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

  • Update the list of known JavaScript globals (#4310)

    This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

    From ES2017:

    • Atomics
    • SharedArrayBuffer

    From ES2020:

    • BigInt64Array
    • BigUint64Array

    From ES2021:

    • FinalizationRegistry
    • WeakRef

    From ES2025:

    • Float16Array
    • Iterator

    Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

    // This can now be tree-shaken by esbuild:
    class ExampleIterator extends Iterator {}
  • Add support for the new @view-transition CSS rule (#4313)

    With this release, esbuild now has improved support for pretty-printing and minifying the new @view-transition rule (which esbuild was previously unaware of):

    /* Original code */
    @view-transition {
      navigation: auto;
      types: check;
    }
    /* Old output */
    @​view-transition { navigation: auto; types: check; }
    /* New output */
    @​view-transition {
    navigation: auto;

... (truncated)

Commits
  • 208f539 publish 0.25.12 to npm
  • 5f03afd update release notes
  • 6b2ee78 minify: remove css rules containing empty :is()
  • f361deb add some additional known static methods
  • 07aa646 automatically mark "RegExp.escape()" calls as pure
  • 9039c46 simplify some call expression checks
  • 188944d add some additional known static methods
  • d3c67f9 fix #4310: add Iterator and other known globals
  • 4a51f0b fix: escape dev server breadcrumb hrefs properly (#4316)
  • 26b29ed fix #4315: @media deduplication bug edge case
  • Additional commits viewable in compare view

Updates @esbuild/openharmony-arm64 from 0.25.11 to 0.25.12

Release notes

Sourced from @​esbuild/openharmony-arm64's releases.

v0.25.12

  • Fix a minification regression with CSS media queries (#4315)

    The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

  • Update the list of known JavaScript globals (#4310)

    This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

    From ES2017:

    • Atomics
    • SharedArrayBuffer

    From ES2020:

    • BigInt64Array
    • BigUint64Array

    From ES2021:

    • FinalizationRegistry
    • WeakRef

    From ES2025:

    • Float16Array
    • Iterator

    Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

    // This can now be tree-shaken by esbuild:
    class ExampleIterator extends Iterator {}
  • Add support for the new @view-transition CSS rule (#4313)

    With this release, esbuild now has improved support for pretty-printing and minifying the new @view-transition rule (which esbuild was previously unaware of):

    /* Original code */
    @view-transition {
      navigation: auto;
      types: check;
    }
    /* Old output */
    @​view-transition { navigation: auto; types: check; }
    /* New output */
    @​view-transition {
    navigation: auto;
    types: check;

... (truncated)

Changelog

Sourced from @​esbuild/openharmony-arm64's changelog.

0.25.12

  • Fix a minification regression with CSS media queries (#4315)

    The previous release introduced support for parsing media queries which unintentionally introduced a regression with the removal of duplicate media rules during minification. Specifically the grammar for @media <media-type> and <media-condition-without-or> { ... } was missing an equality check for the <media-condition-without-or> part, so rules with different suffix clauses in this position would incorrectly compare equal and be deduplicated. This release fixes the regression.

  • Update the list of known JavaScript globals (#4310)

    This release updates esbuild's internal list of known JavaScript globals. These are globals that are known to not have side-effects when the property is accessed. For example, accessing the global Array property is considered to be side-effect free but accessing the global scrollY property can trigger a layout, which is a side-effect. This is used by esbuild's tree-shaking to safely remove unused code that is known to be side-effect free. This update adds the following global properties:

    From ES2017:

    • Atomics
    • SharedArrayBuffer

    From ES2020:

    • BigInt64Array
    • BigUint64Array

    From ES2021:

    • FinalizationRegistry
    • WeakRef

    From ES2025:

    • Float16Array
    • Iterator

    Note that this does not indicate that constructing any of these objects is side-effect free, just that accessing the identifier is side-effect free. For example, this now allows esbuild to tree-shake classes that extend from Iterator:

    // This can now be tree-shaken by esbuild:
    class ExampleIterator extends Iterator {}
  • Add support for the new @view-transition CSS rule (#4313)

    With this release, esbuild now has improved support for pretty-printing and minifying the new @view-transition rule (which esbuild was previously unaware of):

    /* Original code */
    @view-transition {
      navigation: auto;
      types: check;
    }
    /* Old output */
    @​view-transition { navigation: auto; types: check; }
    /* New output */
    @​view-transition {
    navigation: auto;

... (truncated)

Commits
  • 208f539 publish 0.25.12 to npm
  • 5f03afd update release notes
  • 6b2ee78 minify: remove css rules containing empty :is()
  • f361deb add some additional known static methods
  • 07aa646 automatically mark "RegExp.escape()" calls as pure
  • 9039c46 simplify some call expression checks
  • 188944d add some additional known static methods
  • d3c67f9 fix #4310: add Iterator and other known globals
  • 4a51f0b fix: escape dev server breadcrumb hrefs properly (#4316)
  • 26b29ed fix #4315: @media deduplication bug edge case
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the patch group with 2 updates: [esbuild](https://github.com/evanw/esbuild) and [@esbuild/openharmony-arm64](https://github.com/evanw/esbuild).


Updates `esbuild` from 0.25.11 to 0.25.12
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.11...v0.25.12)

Updates `@esbuild/openharmony-arm64` from 0.25.11 to 0.25.12
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.11...v0.25.12)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.25.12
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: patch
- dependency-name: "@esbuild/openharmony-arm64"
  dependency-version: 0.25.12
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added automated dependencies Pull requests that update a dependency file labels Nov 3, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

📊 Benchmark Results

encoding.bench.ts

Key encoding > ordered-binary keys - strings (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 24.93K ops/sec 40.12 35.53 469.876 1.10 12,464
🥈 rocksdb 2 4.78K ops/sec 209.297 194.352 1,774.191 0.964 2,389

Key encoding > ordered-binary keys - numbers (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 27.12K ops/sec 36.87 32.82 537.549 0.983 13,560
🥈 rocksdb 2 5.00K ops/sec 200.044 186.798 1,722.073 0.728 2,500

Key encoding > ordered-binary keys - mixed types (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 24.23K ops/sec 41.27 36.80 498.584 1.01 12,116
🥈 rocksdb 2 4.89K ops/sec 204.292 193.062 781.14 0.382 2,448

Value encoding > msgpack values - strings (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 15.12K ops/sec 66.15 56.79 501.589 1.22 7,559
🥈 rocksdb 2 4.37K ops/sec 229.018 213.958 963.471 0.498 2,184

Value encoding > msgpack values - numbers (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 25.44K ops/sec 39.31 35.10 374.166 0.974 12,721
🥈 rocksdb 2 4.54K ops/sec 220.29 199.084 3,326.48 1.45 2,270

Value encoding > msgpack values - arrays (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 9.04K ops/sec 110.629 96.44 755.416 1.53 4,520
🥈 rocksdb 2 3.47K ops/sec 287.9 270.858 1,326.352 0.678 1,737

Value encoding > msgpack values - small objects (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 5.90K ops/sec 169.627 151.153 1,162.34 1.74 2,948
🥈 rocksdb 2 2.60K ops/sec 384.872 358.554 1,066.278 0.658 1,300

Value encoding > msgpack values - large objects (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 635.77 ops/sec 1,572.901 1,447.353 9,214.136 4.17 318
🥈 rocksdb 2 624.93 ops/sec 1,600.191 1,454.452 3,432.043 1.93 313

get-sync.bench.ts

getSync() > random keys - small key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 20.22K ops/sec 49.45 42.08 3,805.147 1.90 10,112
🥈 rocksdb 2 4.56K ops/sec 219.437 191.907 11,578.604 6.48 2,279

get.bench.ts

get() > rocksdb - random vs sequential keys (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 sequential 1 4.16K ops/sec 240.191 224.674 747.616 0.461 2,082
🥈 random 2 4.11K ops/sec 243.573 227.051 1,109.526 0.790 2,054

get() > random keys - max 1978 lmdb key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 3.14K ops/sec 318.532 284.858 2,642.821 2.42 1,570

get() > rocksdb - async vs sync

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 sync 1 4.36K ops/sec 229.161 208.972 3,878.044 1.94 2,182
🥈 async 2 3.67K ops/sec 272.429 256.72 1,109.813 0.477 1,836

put-sync.bench.ts

putSync() > random keys - insert - small key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 2.24K ops/sec 446.309 429.577 624.947 0.209 1,121
🥈 lmdb 2 4.12 ops/sec 242,763.032 236,071.824 257,444.076 2.11 10.00

putSync() > random keys - update - small key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 2.12K ops/sec 471.736 442.191 704.477 0.170 1,060
🥈 lmdb 2 4.18 ops/sec 238,955.406 231,357.84 259,564.239 2.95 10.00

putSync() > random keys - insert - max 1978 lmdb key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 1.01K ops/sec 994.484 882.317 1,241.765 0.451 503
🥈 lmdb 2 3.91 ops/sec 255,933.024 245,603.207 275,591.928 2.83 10.00

putSync() > random keys - update - max 1978 lmdb key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 1.03K ops/sec 969.436 877.91 1,199.143 0.510 516
🥈 lmdb 2 3.90 ops/sec 256,420.455 246,047.703 280,570.57 3.61 10.00

putSync() > sequential keys - insert (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 831.73 ops/sec 1,202.314 418.231 321,403.384 125.78 416
🥈 lmdb 2 4.20 ops/sec 238,152.599 232,401.035 261,530.538 2.53 10.00

putSync() > put 100KB value (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 50.99 ops/sec 19,612.278 17,819.32 21,192.497 2.31 26.00
🥈 lmdb 2 2.66 ops/sec 375,260.521 366,198.226 391,230.505 1.62 10.00

putSync() > put 1MB value (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 5.17 ops/sec 193,390.83 185,826.982 209,411.59 2.53 10.00
🥈 lmdb 2 1.72 ops/sec 581,715.855 516,505.564 615,345.98 3.73 10.00

putSync() > get 10MB value (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 0.23 ops/sec 4,403,115.981 3,212,034.618 5,733,681.337 13.22 10.00
🥈 rocksdb 2 0.14 ops/sec 7,122,888.618 5,979,793.271 8,166,855.517 7.65 10.00

put.bench.ts

put > small dataset (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 1.92K ops/sec 519.592 497.898 827.798 0.354 963
🥈 lmdb 2 3.69 ops/sec 271,205.02 260,470.088 312,229.964 4.31 10.00

put > async vs sync overhead

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 sync 1 2.08K ops/sec 480.114 450.819 854.194 0.238 1,042
🥈 async 2 1.98K ops/sec 504.001 466.411 994.456 0.361 993

ranges.bench.ts

getRange() > small range (100 records, 50 range)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 23.50K ops/sec 42.55 36.57 571.227 1.09 11,751
🥈 rocksdb 2 2.93K ops/sec 341.515 283.608 2,388.338 3.01 1,465

getRange() > full scan vs range scan

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb range scan 1 20.30K ops/sec 49.27 40.51 627.894 1.17 10,149
🥈 lmdb full scan 2 11.93K ops/sec 83.82 75.99 675.593 0.678 5,966
🥉 rocksdb range scan 3 3.10K ops/sec 322.547 281.701 1,938.153 2.07 1,551
rocksdb full scan 4 1.61K ops/sec 619.224 534.704 3,354.424 3.35 808

getKeys() > keys only (100 records, 50 range)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 50.49K ops/sec 19.81 16.44 7,965.74 3.56 25,244
🥈 rocksdb 2 4.89K ops/sec 204.509 182.692 1,042.658 1.12 2,445

Reverse iteration > reverse range (100 records, 50 range)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 518.82K ops/sec 1.93 1.19 6,137.943 7.52 259,410
🥈 rocksdb 2 3.00K ops/sec 333.281 301.929 1,155.843 1.36 1,501

Reverse iteration > rocksdb - reverse vs forward

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 forward 1 3.19K ops/sec 313.573 285.479 1,373.611 1.57 1,598
🥈 reverse 2 2.99K ops/sec 334.338 304.982 1,878.739 1.82 1,496

Range query patterns > prefix scan performance

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 30.46K ops/sec 32.84 28.94 1,141.285 1.17 15,228
🥈 rocksdb 2 3.49K ops/sec 286.32 261.782 2,229.727 1.97 1,747

Sparse data patterns > sparse - range over gaps

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 58.18K ops/sec 17.19 14.96 1,636.602 1.44 29,092
🥈 rocksdb 2 6.28K ops/sec 159.277 144.416 1,194.498 1.24 3,140

Sparse data patterns > sparse - prefix with gaps

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 122.55K ops/sec 8.16 6.82 3,201.178 2.64 61,273
🥈 rocksdb 2 12.41K ops/sec 80.55 70.54 3,288.473 1.60 6,208

remove-sync.bench.ts

removeSync() > random keys - small key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 12.14K ops/sec 82.35 70.78 866.035 1.80 6,072
🥈 rocksdb 2 2.45K ops/sec 407.593 380.184 526.872 0.231 1,227

removeSync() > sequential keys - small key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 12.56K ops/sec 79.63 74.72 767.778 0.751 6,280
🥈 rocksdb 2 2.55K ops/sec 392.764 365.026 631.302 0.170 1,274

removeSync() > rocksdb - random vs sequential keys (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 random 1 2.60K ops/sec 384.802 356.191 781.849 0.236 1,300
🥈 sequential 2 2.58K ops/sec 387.479 361.151 551.364 0.194 1,291

removeSync() > random keys - max 1978 lmdb key size (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 9.50K ops/sec 105.233 90.65 1,620.879 2.66 4,752
🥈 rocksdb 2 1.06K ops/sec 939.951 842.228 1,114.735 0.439 532

removeSync() > random access pattern (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 11.32K ops/sec 88.38 76.05 611.268 1.27 5,658
🥈 rocksdb 2 2.56K ops/sec 390.714 359.047 485.804 0.140 1,280

removeSync() > non-existent keys (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 12.24K ops/sec 81.67 77.95 364.81 0.341 6,122
🥈 rocksdb 2 2.56K ops/sec 391.016 360.645 479.846 0.131 1,279

transaction-sync.bench.ts

transaction sync > optimistic > simple put operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 592.17 ops/sec 1,688.698 1,580.37 4,368.216 1.56 297
🥈 lmdb 2 4.24 ops/sec 235,702.124 219,993.009 243,959.75 1.89 10.00

transaction sync > optimistic > batch operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 2.94K ops/sec 340.672 318.412 1,803.048 0.601 1,468
🥈 lmdb 2 341.92 ops/sec 2,924.686 2,553.013 6,085.915 1.46 171

transaction sync > optimistic > read-write operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 346.13 ops/sec 2,889.077 2,622.724 5,362.806 1.96 174
🥈 lmdb 2 4.15 ops/sec 241,182.834 235,247.141 262,719.831 2.32 10.00

transaction sync > optimistic > concurrent non-conflicting operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 588.60 ops/sec 1,698.936 1,618.808 3,328.258 1.07 295
🥈 lmdb 2 4.26 ops/sec 234,605.311 212,414.841 260,169.182 4.14 10.00

transaction sync > optimistic > rollback operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 16.24K ops/sec 61.58 58.88 335.41 0.388 8,120
🥈 rocksdb 2 5.74K ops/sec 174.241 166.652 843.619 0.295 2,870

transaction sync > optimistic > rocksdb - large transaction vs many small

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 3.04K ops/sec 328.778 293.193 547.536 0.259 1,521
🥈 rocksdb 2 608.96 ops/sec 1,642.14 1,566.792 4,197.763 1.38 305

transaction sync > optimistic > lmdb - large transaction vs many small

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 363.49 ops/sec 2,751.119 2,198.688 5,875.515 1.80 182
🥈 lmdb 2 4.22 ops/sec 237,223.976 228,762.095 280,830.43 4.68 10.00

transaction sync > optimistic > empty transaction overhead

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 766.71K ops/sec 1.30 1.10 345.614 0.432 383,356
🥈 rocksdb 2 95.80K ops/sec 10.44 9.34 2,305.624 1.44 47,900

transaction sync > optimistic > transaction with only reads (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 1.55K ops/sec 645.04 587.79 4,314.562 3.37 776
🥈 rocksdb 2 265.47 ops/sec 3,766.904 3,527.603 11,849.156 4.05 133

transaction sync > pessimistic > simple put operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 539.23 ops/sec 1,854.503 1,809.13 2,107.006 0.261 270
🥈 lmdb 2 4.31 ops/sec 232,168.802 222,406.993 256,562.238 2.78 10.00

transaction.bench.ts

transaction > optimistic > simple put operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 330.68 ops/sec 3,024.087 2,630.669 5,284.93 2.28 166
🥈 lmdb 2 3.12 ops/sec 320,107.535 264,391.659 528,932.29 19.21 10.00

transaction > optimistic > batch operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 1.54K ops/sec 650.121 494.226 766.996 0.846 770
🥈 lmdb 2 309.13 ops/sec 3,234.911 2,134.232 9,046.841 4.98 155

transaction > optimistic > read-write operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 142.29 ops/sec 7,028.111 5,786.375 9,889.664 2.26 72.00
🥈 lmdb 2 3.46 ops/sec 288,978.192 279,796.344 308,507.426 2.79 10.00

transaction > optimistic > concurrent non-conflicting operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 975.19 ops/sec 1,025.44 903.122 3,830.389 3.38 488
🥈 lmdb 2 269.41 ops/sec 3,711.776 2,323.776 6,105.176 2.33 135

transaction > optimistic > rollback operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 4.96K ops/sec 201.476 187.253 740.491 0.553 2,482
🥈 lmdb 2 259.64 ops/sec 3,851.486 3,213.045 6,748.822 4.03 130

transaction > optimistic > rocksdb - large transaction vs many small

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 2.26K ops/sec 442.104 366.946 690.648 0.298 1,131
🥈 rocksdb 2 303.51 ops/sec 3,294.794 2,912.886 7,032.691 2.79 152

transaction > optimistic > lmdb - large transaction vs many small

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 271.91 ops/sec 3,677.731 3,195.492 8,037.558 3.23 136
🥈 lmdb 2 3.34 ops/sec 299,574.218 285,736.136 319,546.199 2.90 10.00

transaction > optimistic > empty transaction overhead

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 44.23K ops/sec 22.61 16.79 466.779 0.360 22,117
🥈 rocksdb 2 43.10K ops/sec 23.20 18.65 4,242.246 3.19 21,552

transaction > optimistic > transaction with only reads (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 347.19 ops/sec 2,880.277 2,482.487 18,480.442 6.99 174
🥈 rocksdb 2 165.25 ops/sec 6,051.613 4,521.819 14,505.99 6.96 83.00

transaction > pessimistic > simple put operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 279.77 ops/sec 3,574.38 2,924.31 10,442.185 3.50 140
🥈 lmdb 2 3.58 ops/sec 279,514.358 262,524.552 306,875.235 3.31 10.00

worker-get-sync.bench.ts

Worker > random keys - small key size (100 records, 1 worker)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 13.23K ops/sec 75.61 57.50 6,852.013 3.12 6,613
🥈 rocksdb 2 3.56K ops/sec 281.171 237.307 1,692.236 1.13 1,779

Worker > random keys - small key size (100 records, 2 workers)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 13.67K ops/sec 73.16 62.70 6,945.067 3.32 6,834
🥈 rocksdb 2 3.55K ops/sec 281.419 238.615 1,667.716 0.924 1,777

Worker > random keys - small key size (100 records, 10 workers)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 7.03K ops/sec 142.332 117.645 11,411.585 5.05 3,513
🥈 rocksdb 2 1.73K ops/sec 577.535 492.061 2,567.379 1.92 866

worker-put-sync.bench.ts

putSync() > random keys - small key size (100 records, 1 worker)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 1.85K ops/sec 540.053 493.824 3,333.471 1.37 926
🥈 lmdb 2 3.94 ops/sec 253,709.685 241,655.72 270,305.539 2.62 10.00

putSync() > random keys - small key size (100 records, 2 workers)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 1.43K ops/sec 698.866 634.08 2,692.518 0.916 716
🥈 lmdb 2 1.92 ops/sec 522,035.73 476,179.926 578,978.504 4.06 10.00

putSync() > random keys - small key size (100 records, 10 workers)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 813.67 ops/sec 1,229.003 1,099.569 6,152.153 2.10 407
🥈 lmdb 2 1.00 ops/sec 995,982.391 953,211.858 1,125,514.199 3.82 10.00

Results from commit fc3a855

@cb1kenobi cb1kenobi merged commit b3a2760 into main Nov 3, 2025
21 checks passed
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/patch-8300d49d59 branch November 3, 2025 05:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant