Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jan 7, 2026

Bumps oxlint from 1.37.0 to 1.38.0.

Release notes

Sourced from oxlint's releases.

oxlint v1.27.0 && oxfmt v0.12.0

Oxlint v1.27.0

🚀 Features

  • 222a8f0 linter/plugins: Implement SourceCode#isSpaceBetween (#15498) (overlookmotel)
  • 2f9735d linter/plugins: Implement context.languageOptions (#15486) (overlookmotel)
  • bc731ff linter/plugins: Stub out all Context APIs (#15479) (overlookmotel)
  • 5822cb4 linter/plugins: Add extend method to FILE_CONTEXT (#15477) (overlookmotel)
  • 7b1e6f3 apps: Add pure rust binaries and release to github (#15469) (Boshen)
  • 2a89b43 linter: Introduce debug assertions after fixes to assert validity (#15389) (camc314)
  • ad3c45a editor: Add oxc.path.node option (#15040) (Sysix)

🐛 Bug Fixes

  • 6f3cd77 linter/no-var: Incorrect warning for blocks (#15504) (Hamir Mahal)
  • 6957fb9 linter/plugins: Do not allow access to Context#id in createOnce (#15489) (overlookmotel)
  • 7409630 linter/plugins: Allow access to cwd in createOnce in ESLint interop mode (#15488) (overlookmotel)
  • 732205e parser: Reject using / await using in a switch case / default clause (#15225) (sapphi-red)
  • a17ca32 linter/plugins: Replace Context class (#15448) (overlookmotel)
  • ecf2f7b language_server: Fail gracefully when tsgolint executable not found (#15436) (camc314)
  • 3c8d3a7 lang-server: Improve logging in failure case for tsgolint (#15299) (camc314)
  • ef71410 linter: Use jsx if source type is JS in fix debug assertion (#15434) (camc314)
  • e32bbf6 linter/no-var: Handle TypeScript declare keyword in fixer (#15426) (camc314)
  • 6565dbe linter/switch-case-braces: Skip comments when searching for : token (#15425) (camc314)
  • 85bd19a linter/prefer-class-fields: Insert value after type annotation in fixer (#15423) (camc314)
  • fde753e linter/plugins: Block access to context.settings in createOnce (#15394) (overlookmotel)
  • ddd9f9f linter/forward-ref-uses-ref: Dont suggest removing wrapper in invalid positions (#15388) (camc314)
  • dac2a9c linter/no-template-curly-in-string: Remove fixer (#15387) (camc314)
  • 989b8e3 linter/no-var: Only fix to const if the var has an initializer (#15385) (camc314)
  • cc403f5 linter/plugins: Return empty object for unimplemented parserServices (#15364) (magic-akari)

⚡ Performance

  • 25d577e language_server: Start tools in parallel (#15500) (Sysix)
  • 3c57291 linter/plugins: Optimize loops (#15449) (overlookmotel)
  • 3166233 linter/plugins: Remove Arcs (#15431) (overlookmotel)
  • 9de1322 linter/plugins: Lazily deserialize settings JSON (#15395) (overlookmotel)
  • 3049ec2 linter/plugins: Optimize deepFreezeSettings (#15392) (overlookmotel)
  • 444ebfd linter/plugins: Use single object for parserServices (#15378) (overlookmotel)

📚 Documentation

  • 97d2104 linter: Update comment in lint.rs about default value for tsconfig path (#15530) (Connor Shea)
  • 2c6bd9e linter: Always refer as "ES2015" instead of "ES6" (#15411) (sapphi-red)
  • a0c5203 linter/import/named: Update "ES7" comment in examples (#15410) (sapphi-red)
  • 3dc24b5 linter,minifier: Always refer as "ES Modules" instead of "ES6 Modules" (#15409) (sapphi-red)
  • 2ad77fb linter/no-this-before-super: Correct "Why is this bad?" section (#15408) (sapphi-red)
  • 57f0ce1 linter: Add backquotes where appropriate (#15407) (sapphi-red)

Oxfmt v0.12.0

... (truncated)

Changelog

Sourced from oxlint's changelog.

Changelog

All notable changes to this package will be documented in this file.

The format is based on Keep a Changelog.

Commits

Dependabot compatibility score

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 this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint) from 1.37.0 to 1.38.0.
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/oxlint_v1.38.0/npm/oxlint)

---
updated-dependencies:
- dependency-name: oxlint
  dependency-version: 1.38.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added automated dependencies Pull requests that update a dependency file labels Jan 7, 2026
@socket-security
Copy link

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedoxlint@​1.37.0 ⏵ 1.38.0871008996 +1100

View full report

@github-actions
Copy link

github-actions bot commented Jan 7, 2026

📊 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 27.24K ops/sec 36.71 35.52 280.254 0.321 13,621
🥈 rocksdb 2 4.74K ops/sec 210.926 196.964 1,067.084 0.597 2,371

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 30.74K ops/sec 32.53 31.83 218.519 0.189 15,372
🥈 rocksdb 2 4.72K ops/sec 211.85 200.893 465.742 0.321 2,361

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 27.45K ops/sec 36.43 35.37 262.13 0.359 13,724
🥈 rocksdb 2 4.43K ops/sec 225.701 215.064 524.236 0.303 2,216

Value encoding > msgpack values - strings (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 18.17K ops/sec 55.04 53.46 213.565 0.239 9,085
🥈 rocksdb 2 4.26K ops/sec 234.875 224.555 855.981 0.430 2,129

Value encoding > msgpack values - numbers (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 28.69K ops/sec 34.86 33.84 245.756 0.344 14,349
🥈 rocksdb 2 4.76K ops/sec 210.05 198.898 798.198 0.476 2,381

Value encoding > msgpack values - arrays (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 10.13K ops/sec 98.76 94.38 383.895 0.564 5,063
🥈 rocksdb 2 3.32K ops/sec 301.109 278.214 701.291 0.547 1,661

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 6.52K ops/sec 153.413 149.179 343.154 0.321 3,260
🥈 rocksdb 2 2.62K ops/sec 382.204 364.176 705.581 0.481 1,309

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 684.08 ops/sec 1,461.807 1,417.873 2,677.794 0.888 343
🥈 rocksdb 2 637.85 ops/sec 1,567.755 1,453.871 3,064.176 1.71 319

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 22.78K ops/sec 43.90 41.63 642.203 0.333 11,391
🥈 rocksdb 2 4.13K ops/sec 242.049 209.956 24,535.305 9.63 2,066

get.bench.ts

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 random 1 4.08K ops/sec 245.333 230.543 540.995 0.502 2,039
🥈 sequential 2 4.05K ops/sec 246.949 237.718 460.142 0.367 2,025

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.21K ops/sec 311.2 293.022 1,178.43 0.990 1,607

get() > rocksdb - async vs sync

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 sync 1 4.31K ops/sec 231.825 220.58 1,260.577 0.548 2,157
🥈 async 2 3.72K ops/sec 268.95 258.598 621.533 0.360 1,860

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.07K ops/sec 481.986 458.522 723.214 0.216 1,038
🥈 lmdb 2 1.89K ops/sec 530.454 490.714 25,543.128 9.81 943

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 2.09K ops/sec 479.199 459.242 599.143 0.178 1,044
🥈 lmdb 2 1.94K ops/sec 514.795 501.717 2,360.27 0.745 972

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.04K ops/sec 962.341 867.225 1,199.013 0.341 520
🥈 lmdb 2 883.79 ops/sec 1,131.488 1,102.361 1,391.038 0.226 442

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 972.13 834.135 1,170.059 0.372 515
🥈 lmdb 2 900.41 ops/sec 1,110.602 1,023.962 1,807.257 0.494 451

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 2.14K ops/sec 468.108 449.44 622.063 0.173 1,069
🥈 lmdb 2 1.88K ops/sec 531.283 514.905 1,240.597 0.314 942

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 75.72 ops/sec 13,206.435 13,085.044 13,590.593 0.340 38.00
🥈 rocksdb 2 39.29 ops/sec 25,454.987 14,175.823 53,953.911 17.89 20.00

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 12.23 ops/sec 81,754.423 78,810.219 93,625.741 3.72 10.00
🥈 rocksdb 2 1.87 ops/sec 535,232.643 350,015.43 855,892.143 25.82 10.00

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 1.18 ops/sec 845,289.366 841,032.716 854,721.311 0.371 10.00
🥈 rocksdb 2 0.10 ops/sec 10,354,487.853 9,218,148.049 11,640,594.138 4.78 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.72K ops/sec 579.978 533.995 2,059.571 1.32 863
🥈 lmdb 2 480.09 ops/sec 2,082.942 1,960.83 2,543.018 0.540 241

put > async vs sync overhead

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 sync 1 1.98K ops/sec 505.581 484.887 614.399 0.190 990
🥈 async 2 1.82K ops/sec 548.645 522.045 828.576 0.246 912

ranges.bench.ts

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 25.12K ops/sec 39.82 37.07 364.497 0.504 12,558
🥈 rocksdb 2 3.41K ops/sec 293.489 259.577 1,070.535 1.48 1,704

getRange() > full scan vs range scan

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb range scan 1 24.22K ops/sec 41.28 38.52 366.74 0.475 12,112
🥈 lmdb full scan 2 13.18K ops/sec 75.90 73.18 310.238 0.456 6,588
🥉 rocksdb range scan 3 3.61K ops/sec 277.377 254.678 873.991 1.25 1,803
rocksdb full scan 4 1.88K ops/sec 532.327 491.277 1,171.193 1.37 940

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 54.66K ops/sec 18.30 16.91 300.889 0.345 27,330
🥈 rocksdb 2 5.69K ops/sec 175.877 155.412 917.019 1.17 2,843

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 579.62K ops/sec 1.73 1.54 1,966.312 0.834 289,813
🥈 rocksdb 2 3.16K ops/sec 316.909 290.456 1,154.882 1.51 1,578

Reverse iteration > rocksdb - reverse vs forward

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 forward 1 3.40K ops/sec 294.236 252.308 3,988.487 2.02 1,700
🥈 reverse 2 3.30K ops/sec 303.08 277.92 1,513.701 1.70 1,650

Range query patterns > prefix scan performance

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 33.07K ops/sec 30.24 29.22 661.273 0.342 16,534
🥈 rocksdb 2 3.63K ops/sec 275.62 250.252 3,781.993 2.44 1,815

Sparse data patterns > sparse - range over gaps

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 64.48K ops/sec 15.51 14.90 675.288 0.391 32,242
🥈 rocksdb 2 7.08K ops/sec 141.225 129.822 955.139 1.10 3,541

Sparse data patterns > sparse - prefix with gaps

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 129.28K ops/sec 7.74 7.05 749.573 0.456 64,647
🥈 rocksdb 2 15.48K ops/sec 64.59 58.50 1,973.88 1.14 7,742

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 14.22K ops/sec 70.34 64.51 270.773 0.320 7,108
🥈 rocksdb 2 2.54K ops/sec 393.518 380.261 597.571 0.180 1,271

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 13.09K ops/sec 76.39 67.60 433.612 0.596 6,546
🥈 rocksdb 2 2.55K ops/sec 391.683 374.223 556.676 0.153 1,277

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 sequential 1 2.63K ops/sec 380.276 369.399 507.804 0.145 1,315
🥈 random 2 2.56K ops/sec 390.249 370.963 721.041 0.241 1,282

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 5.85K ops/sec 170.963 161.971 5,249.517 2.02 2,925
🥈 rocksdb 2 1.14K ops/sec 880.453 748.49 1,049.884 0.374 568

removeSync() > random access pattern (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 13.19K ops/sec 75.82 72.66 341.032 0.268 6,595
🥈 rocksdb 2 2.61K ops/sec 383.143 365.302 551.462 0.166 1,306

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 12.84K ops/sec 77.87 72.29 296.436 0.242 6,421
🥈 rocksdb 2 2.64K ops/sec 378.984 364.398 1,452.965 0.448 1,320

transaction-log.bench.ts

Transaction log > write log with 100 byte records

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 84.60K ops/sec 11.82 4.64 236.594 0.399 42,302
🥈 rocksdb 2 51.40K ops/sec 19.45 11.37 883.952 0.769 25,701

Transaction log > read 100 iterators while write log with 100 byte records

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 49.51K ops/sec 20.20 13.63 881.248 0.737 24,757
🥈 lmdb 2 9.58K ops/sec 104.332 67.94 9,484.474 4.32 4,793

Transaction log > read one entry from random position from log with 1000 100 byte records

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 582.37K ops/sec 1.72 1.46 518.118 0.342 291,185
🥈 lmdb 2 296.98K ops/sec 3.37 1.74 6,701.609 5.70 148,492

transaction-sync.bench.ts

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 1.87K ops/sec 533.757 512.928 808.749 0.246 937
🥈 rocksdb 2 573.79 ops/sec 1,742.801 1,665.951 4,272.615 1.32 287

transaction sync > optimistic > batch operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 16.14K ops/sec 61.94 58.83 299.997 0.310 8,073
🥈 rocksdb 2 2.73K ops/sec 366.562 339.626 641.384 0.216 1,365

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 435.74 ops/sec 2,294.972 2,149.407 3,280.598 0.843 218
🥈 rocksdb 2 343.41 ops/sec 2,911.971 2,638.835 4,949.786 1.89 172

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 1.69K ops/sec 590.097 564.45 836.427 0.276 848
🥈 rocksdb 2 536.64 ops/sec 1,863.437 1,800.134 3,097.06 0.924 269

transaction sync > optimistic > rollback operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 15.49K ops/sec 64.57 62.83 245.84 0.275 7,744
🥈 rocksdb 2 5.34K ops/sec 187.238 180.554 820.151 0.296 2,671

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 2.79K ops/sec 358.501 338.942 795.931 0.226 1,395
🥈 rocksdb 2 558.15 ops/sec 1,791.617 1,734.969 3,951.658 1.16 280

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 14.76K ops/sec 67.77 65.62 290.075 0.314 7,378
🥈 lmdb 2 1.77K ops/sec 565.121 545.061 815.229 0.279 885

transaction sync > optimistic > empty transaction overhead

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 630.85K ops/sec 1.59 1.38 232.103 0.421 315,425
🥈 rocksdb 2 83.73K ops/sec 11.94 10.81 1,820.065 1.09 41,867

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 1.71K ops/sec 584.726 570.375 925.243 0.289 856
🥈 rocksdb 2 247.82 ops/sec 4,035.204 3,850.07 9,772.104 2.83 124

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 1.81K ops/sec 552.101 534.033 966.587 0.254 906
🥈 rocksdb 2 504.73 ops/sec 1,981.256 1,942.988 2,746.717 0.348 253

transaction.bench.ts

transaction > optimistic > simple put operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 363.15 ops/sec 2,753.668 2,581.325 5,551.042 1.38 182
🥈 rocksdb 2 324.84 ops/sec 3,078.394 2,716.834 5,163.339 2.17 163

transaction > optimistic > batch operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 8.85K ops/sec 112.986 88.38 291.04 0.689 4,426
🥈 rocksdb 2 2.17K ops/sec 461.753 417.593 540.856 0.170 1,083

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 251.62 ops/sec 3,974.296 2,984.106 5,962.704 4.87 127
🥈 rocksdb 2 228.31 ops/sec 4,379.97 3,856.442 5,812.857 1.76 115

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 5.72K ops/sec 174.717 127.531 412.211 0.703 2,862
🥈 rocksdb 2 931.60 ops/sec 1,073.424 911.698 3,818.207 2.45 466

transaction > optimistic > rollback operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 7.92K ops/sec 126.328 92.84 309.382 0.711 3,959
🥈 rocksdb 2 4.85K ops/sec 206.257 195.891 758.109 0.485 2,425

transaction > optimistic > rocksdb - large transaction vs many small

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 1.67K ops/sec 597.584 542.525 730.017 0.211 837
🥈 rocksdb 2 340.63 ops/sec 2,935.761 2,778.454 5,179.04 1.50 171

transaction > optimistic > lmdb - large transaction vs many small

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 7.60K ops/sec 131.647 91.52 277.844 0.724 3,799
🥈 lmdb 2 368.55 ops/sec 2,713.372 2,635.573 3,185.702 0.456 185

transaction > optimistic > empty transaction overhead

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 43.88K ops/sec 22.79 17.50 267.725 0.340 21,940
🥈 rocksdb 2 42.44K ops/sec 23.56 19.94 949.743 0.893 21,221

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

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 394.03 ops/sec 2,537.858 2,440.768 3,097.679 0.377 198
🥈 rocksdb 2 153.83 ops/sec 6,500.718 5,707.435 9,345.059 2.34 77.00

transaction > pessimistic > simple put operations (100 records)

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 lmdb 1 364.01 ops/sec 2,747.141 2,655.037 3,081.369 0.460 183
🥈 rocksdb 2 262.55 ops/sec 3,808.813 3,199.528 5,562.137 1.65 132

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 15.58K ops/sec 64.19 60.20 239.734 0.350 7,790
🥈 rocksdb 2 3.72K ops/sec 269.082 229.984 672.492 0.640 1,859

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.66K ops/sec 73.19 61.65 247.509 0.487 6,832
🥈 rocksdb 2 3.66K ops/sec 273.467 237.686 734.947 0.968 1,829

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.93K ops/sec 126.13 116.651 255.28 0.263 3,965
🥈 rocksdb 2 1.75K ops/sec 571.64 490.693 1,096.964 0.998 875

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.82K ops/sec 550.498 514.33 791.344 0.248 909
🥈 lmdb 2 4.17 ops/sec 240,075.778 222,831.916 275,292.858 4.54 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.36K ops/sec 735.829 691.268 1,225.573 0.404 680
🥈 lmdb 2 2.16 ops/sec 462,962.79 455,828.477 484,575.966 1.36 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 854.14 ops/sec 1,170.765 1,004.983 1,631.958 0.620 428
🥈 lmdb 2 0.96 ops/sec 1,037,908.523 885,490.257 1,108,870.364 4.42 10.00

worker-transaction-log.bench.ts

Transaction log with workers > write log with 100 byte records

Implementation Rank Operations/sec Mean (ms) Min (ms) Max (ms) RME (%) Samples
🥇 rocksdb 1 18.07K ops/sec 55.34 32.92 1,409.639 1.12 9,035
🥈 lmdb 2 760.72 ops/sec 1,314.54 340.267 9,681.812 10.98 382

Results from commit 8f7f168

@cb1kenobi cb1kenobi merged commit 24a5b0e into main Jan 7, 2026
33 of 36 checks passed
@cb1kenobi cb1kenobi deleted the dependabot/npm_and_yarn/oxlint-1.38.0 branch January 7, 2026 14:42
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.

2 participants