From 21df47cba9d3223e81853bbc2543c031a4cef59c Mon Sep 17 00:00:00 2001 From: Wolfgang Schoenberger <221313372+wolfiesch@users.noreply.github.com> Date: Wed, 7 Oct 2026 19:15:04 -0700 Subject: [PATCH] Publish the 2026-10-03 snapshot as the live dashboard; fix dead WolfXL links The deployed dashboard was still rendering the 2026-02-17 fidelity run and the 2026-04-20 perf run because results/ was never refreshed when dated snapshots landed. Promote results-2026-10-03 (fidelity + perf) into results/, append both history lines, regenerate the scatter plots and deploy/index.html. WolfXL links pointed at a repository that is not public; point them at SynthGL/wolfxl-oss and the docs at wolfxl.com/docs. --- README.md | 18 +- deploy/index.html | 12278 ++- results/perf/README.md | 266 +- results/perf/history.jsonl | 1 + results/perf/matrix.csv | 515 +- results/perf/results.json | 7437 +- results/xlsx/FIDELITY_DELTAS.md | 31 +- results/xlsx/README.md | 2875 +- results/xlsx/WHY_FAILED.md | 9823 ++ results/xlsx/heatmap.png | Bin 138086 -> 308022 bytes results/xlsx/heatmap.svg | 4958 +- results/xlsx/history.jsonl | 1 + results/xlsx/matrix.csv | 180 +- results/xlsx/results.json | 103015 +++++++++++++++----- results/xlsx/scatter_features.png | Bin 338008 -> 313043 bytes results/xlsx/scatter_features.svg | 4381 +- results/xlsx/scatter_tiers.png | Bin 207418 -> 191910 bytes results/xlsx/scatter_tiers.svg | 2165 +- src/excelbench/results/html_dashboard.py | 4 +- 19 files changed, 105685 insertions(+), 42263 deletions(-) create mode 100644 results/xlsx/WHY_FAILED.md diff --git a/README.md b/README.md index 4112f48..154013a 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,7 @@ See the [release snapshot dashboard](results-release-2026-04-28/DASHBOARD.md) fo | Library | Version | Lang | Caps | Green Features | |:--------|:--------|:-----|:-----|:--------------:| -| [WolfXL](https://github.com/SynthGL/wolfxl) | 2.0.8 | Python (Rust core) | R+W | R 21/21, W 21/21 (2026-10-03 snapshot) | +| [WolfXL](https://github.com/SynthGL/wolfxl-oss) | 2.0.8 | Python (Rust core) | R+W | R 21/21, W 21/21 (2026-10-03 snapshot) | | [openpyxl](https://openpyxl.readthedocs.io/) | 3.1.5 | Python | R+W | R 21/21, W 21/21 (2026-10-03 snapshot) | | [aspose-cells-foss](https://pypi.org/project/aspose-cells-foss/) | 26.7 | Python (JVM-core FOSS) | R+W | R 11/21, W 14/21 (2026-10-03 snapshot) | | [XlsxWriter](https://xlsxwriter.readthedocs.io/) | 3.2.9 | Python | W | 15/18 | @@ -182,8 +182,8 @@ Five additional adapters via Rust/PyO3 extension modules: | Library | Caps | Source | Notes | |:--------|:-----|:-------|:------| -| [WolfXL](https://github.com/SynthGL/wolfxl) (calamine-styled) | R | PyPI | Full-fidelity Rust reader with style extraction | -| [WolfXL](https://github.com/SynthGL/wolfxl) (rust_xlsxwriter) | W | PyPI | Full-fidelity Rust writer | +| [WolfXL](https://github.com/SynthGL/wolfxl-oss) (calamine-styled) | R | PyPI | Full-fidelity Rust reader with style extraction | +| [WolfXL](https://github.com/SynthGL/wolfxl-oss) (rust_xlsxwriter) | W | PyPI | Full-fidelity Rust writer | | calamine (basic) | R | Local | Direct calamine bindings (data only, no styles) | | rust_xlsxwriter (direct) | W | Local | Direct rust_xlsxwriter bindings | | umya-spreadsheet | R+W | Local | Rust read + write | @@ -260,13 +260,13 @@ See [docs/public-reporting.md](docs/public-reporting.md). ## WolfXL Docs -WolfXL documentation lives in the [wolfxl repository](https://github.com/SynthGL/wolfxl/tree/main/docs). +WolfXL documentation lives at [wolfxl.com/docs](https://wolfxl.com/docs/). -- [Quickstart](https://github.com/SynthGL/wolfxl/blob/main/docs/getting-started/quickstart.md) -- [Openpyxl migration guide](https://github.com/SynthGL/wolfxl/blob/main/docs/migration/openpyxl-migration.md) -- [Compatibility matrix](https://github.com/SynthGL/wolfxl/blob/main/docs/migration/compatibility-matrix.md) -- [Benchmark methodology](https://github.com/SynthGL/wolfxl/blob/main/docs/performance/methodology.md) -- [Known limitations](https://github.com/SynthGL/wolfxl/blob/main/docs/trust/limitations.md) +- [Quickstart](https://wolfxl.com/docs/getting-started/quickstart/) +- [Openpyxl migration guide](https://wolfxl.com/docs/migration/openpyxl-migration/) +- [Compatibility matrix](https://wolfxl.com/docs/migration/compatibility-matrix/) +- [Benchmark methodology](https://wolfxl.com/docs/performance/methodology/) +- [Known limitations](https://wolfxl.com/docs/trust/limitations/) ## Quick Start diff --git a/deploy/index.html b/deploy/index.html index a617084..b934f8a 100644 --- a/deploy/index.html +++ b/deploy/index.html @@ -325,6 +325,7 @@ .tc-table td,.tc-table th{font-size:.74rem;padding:.3rem .5rem} .tc-table .pass{color:#76d8a2} .tc-table .fail{color:#ff7683;font-weight:600} +.tc-table .unsupported{color:#f5c46b;font-weight:700} code.val{ font-family:var(--font-mono); font-size:.71rem; @@ -743,7 +744,7 @@ -

ExcelBench Dashboard

Profile: xlsx · Platform: Darwin-arm64 · Excel: 16.105.3 · Date: 2026-02-17
Score rubric: 3 = all basic + edge pass; 2 = all basic pass with edge failures; 1 = at least one basic pass (not all); 0 = no basic pass.
🐺

WolfXL — Top-Ranked Across Fidelity & Performance

14/17 features at full fidelity (score 3). Hybrid Rust+Python architecture for maximum compatibility and speed. View on GitHub →

14
Libraries Tested
17
Features Scored
51%
Avg Pass Rate
91/238
Score 3 Results
25
Perf Iterations

Library Strength Profiles

5-axis comparison: fidelity, read/write speed, feature coverage, and capability breadth. All axes normalised 0–100. Speed baseline: openpyxlΒ =Β 50.

+

ExcelBench Dashboard

Profile: xlsx · Platform: Darwin-arm64 · Excel: 16.105.3 · Date: 2026-10-03
Score rubric: 3 = all basic + edge pass; 2 = all basic pass with edge failures; 1 = at least one basic pass (not all); 0 = no basic pass.
🐺

WolfXL at a glance (maintained by SynthGL)

21/21 features scored 3 in read or write. Hybrid Rust+Python engine with an openpyxl-compatible API. View on GitHub →

17
Libraries Tested
21
Features Scored
53%
Avg Pass Rate
145/357
Score 3 Results
25
Perf Iterations

Delta Since Last Run

  • Fidelity score changes: 6 (improvements: 4, regressions: 2)
  • Median read throughput: +12%
  • Median write throughput: +28%

Library Strength Profiles

5-axis comparison: fidelity, read/write speed, feature coverage, and capability breadth. All axes normalised 0–100. Speed baseline: openpyxlΒ =Β 50.

Score Matrix

+}));

Score Matrix

Best of read/write. Hover for R/W breakdown.

- - + + + + + @@ -4644,18 +4648,21 @@ - + - - + + + + + - - + + @@ -4663,10 +4670,13 @@ - - + + + + + @@ -4679,10 +4689,13 @@ - - + + + + + @@ -4693,13 +4706,16 @@ - + + + + + - - + @@ -4712,10 +4728,13 @@ - - + + + + + @@ -4728,10 +4747,13 @@ - - + + + + + @@ -4744,10 +4766,13 @@ - - + + + + + @@ -4760,10 +4785,13 @@ - - + + + + + @@ -4776,10 +4804,13 @@ - - + + + + + @@ -4790,13 +4821,16 @@ - + - - + + + + + @@ -4809,10 +4843,13 @@ - - + + + + + @@ -4825,10 +4862,13 @@ - - + + + + + @@ -4841,10 +4881,13 @@ - - + + + + + @@ -4857,10 +4900,13 @@ - - + + + + + @@ -4873,10 +4919,13 @@ + + + + - - + @@ -4889,10 +4938,13 @@ - - + + + + + @@ -4905,36 +4957,136 @@ + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Feature
openpyxl
R+W
xlsxwriter
W
rust_xlsxwriter
W
wolfxl
R+W
aspose-cells-foss
R+W
exceljs
R+W
libreoffice
R+W
xlsxwriter
W
xlsxwriter-constmem
W
sheetjs
R+W
xlwt
W
openpyxl-readonly
R
pandas
R+W
polars
R
xlrd
R
Tier 0 β€” Core
Tier 0 β€” Core
Cell Values 333 33333 33 3 3 33333 3 1 1
Formulas 333 3333 333 0 3 3
Multiple Sheets 333 33333 33 3 3 31 β€”
Tier 1 β€” Formatting
Tier 1 β€” Formatting
Alignment 33133 1 1110 3 0 0
Background Colors 333 33333 33 1 0 0
Borders 333 3133 330 1 0 0
Dimensions 333 33333 13 1 0 0
Number Formats 333 33313 33 3 0 0
Text Formatting 333 31333 30 1 0 00 β€”
Tier 2 β€” Advanced
Tier 2 β€” Advanced
Comments 333 33333 03 0 0 0
Cond. Formatting 333 3322 330 0 0 0
Data Validation 333 3333 330 0 0 0
Freeze Panes 333 3333 330 0 0 0
Hyperlinks 333 3320 333 0 0 0
Images 33003 3 0000 0 0 0
Merged Cells 333 33333 33 0 0 0
Pivot Tables β€”β€”β€”β€”β€”β€”β€”β€”β€”β€” β€” β€”β€” β€” β€” β€” β€” β€”
Tier 3 β€” Workbook Metadata
Named Ranges3332300300000000 β€”
Tables3313300000000000 β€”
Tier -1
chart_anchor3330000000000000 β€”
page_setup3310100000000000 β€”
sheet_protection3333200300000000 β€”

Fidelity vs. Throughput

-

By Feature Group

-

Per Feature

+

By Feature Group

+

Per Feature

Heatmap

- + - 2026-02-17T01:03:05.353315 + 2026-10-02T17:02:15.340113 image/svg+xml - Matplotlib v3.10.8, https://matplotlib.org/ + Matplotlib v3.11.2, https://matplotlib.org/ @@ -4945,43 +5097,43 @@

Heatmap

- - - + +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AAAAgiOoAAAAAAAAAEER1AAAAAAAAAAiiOgAAAAAAAAAEUR0AAAAAAAAAgqgOAAAAAAAAAEFUBwAAAAAAAIAgqgMAAAAAAABAENUBAAAAAAAAIIjqAAAAAAAAABBEdQAAAAAAAAAIojoAAAAAAAAABFEdAAAAAAAAAIKoDgAAAAAAAABBVAcAAAAAAACAIKoDAAAAAAAAQBDVAQAAAAAAACCI6gAAAAAAAAAQRHUAAAAAAAAACKI6AAAAAAAAAARRHQAAAAAAAACCqA4AAAAAAAAAQVQHAAAAAAAAgCCqAwAAAAAAAEAQ1QEAAAAAAAAgiOoAAAAAAAAAEER1AAAAAAAAAAiiOgAAAAAAAAAEUR0AAAAAAAAAgqgOAAAAAAAAAEFUBwAAAAAAAIAgqgMAAAAAAABAENUBAAAAAAAAIIjqAAAAAAAAABBEdQAAAAAAAAAIUz0A8Nhuy8voEQCAv+B4vtsjAAAAwEAu1QEAAAAAAAAgiOoAAAAAAAAAEER1AAAAAAAAAAiiOgAAAAAAAAAEUR0AAAAAAAAAgqgOAAAAAAAAAEFUBwAAAAAAAIAgqgMAAAAAAABAENUBAAAAAAAAIIjqAAAAAAAAABBEdQAAAAAAAAAIojoAAAAAAAAABFEdAAAAAAAAAIKoDgAAAAAAAABBVAcAAAAAAACAIKoDAAAAAAAAQBDVAQAAAAAAACCI6gAAAAAAAAAQRHUAAAAAAAAACKI6AAAAAAAAAARRHQAAAAAAAACCqA4AAAAAAAAAQVQHAAAAAAAAgCCqAwAAAAAAAEAQ1QEAAAAAAAAgiOoAAAAAAAAAEER1AAAAAAAAAAiiOgAAAAAAAAAEUR0AAAAAAAAAgqgOAAAAAAAAAEFUBwAAAAAAAIAgqgMAAAAAAABAENUBAAAAAAAAIIjqAAAAAAAAABBEdQAAAAAAAAAIojoAAAAAAAAABFEdAAAAAAAAAIKoDgAAAAAAAABBVAcAAAAAAACAIKoDAAAAAAAAQBDVAQAAAAAAACCI6gAAAAAAAAAQRHUAAAAAAAAACKI6AAAAAAAAAARRHQAAAAAAAACCqA4AAAAAAAAAQVQHAAAAAAAAgCCqAwAAAAAAAEAQ1QEAAAAAAAAgiOoAAAAAAAAAEER1AAAAAAAAAAiiOgAAAAAAAAAEUR0AAAAAAAAAgqgOAAAAAAAAAEFUBwA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" id="heatmap-imageaaff3dfadf" transform="scale(1 -1) translate(0 -581.76)" x="81.12" y="-103.427542" width="962.4" height="581.76"/> - - + - + - - - - - - - - - - - - - - - + + + + + + + + - + - - + + - - + - - - - - - - - - - - - - + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + - + - - - - - - - + + + + + + + + + + + + + - - + + - + - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - + + - + - + - - - - - - - + + + + + + + - - + + - + - + - - - - - - - - + + + + + + + + - - + + - + - + - + - - - - - - - - - - - + + + + + + + + + - - + + - + - + - - - - - - - - - - + + + + + + + - - + + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - + + - + - + - - - - - - - + + + + + + + - + - - + - + - + - - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - - - - - - - - - + + + + + + + + - + - + - + - + - - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - + + + + + + + + + - + - + - + - + - - - - - - - - - - + + + + + + + + + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - - - - - - - - - - - + + + + + + + + + + - + - + - + - + - - - - - - - - + + + + + + + - + - + - + - + - - - - - - - - - + + + + + + + + - + - + - + - - - - - - - - - + + + + + + + + + - + - + - + - + - - - - - - - - - - + + + + + + + + + - + - + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + - + - + - + - + - - - - - - - - - - - - + + + + + + + + + + - + - + - + - + - - - - - - - + + + + + + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + - + - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - - - + + + + - + - - + + - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - - + + + + + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +" clip-path="url(#heatmap-pb153add1ad)" style="fill: none; stroke: #f97316; stroke-width: 2.5; stroke-linejoin: miter"/> - - + - + - - - - - - - - - - + + + + + + + + - - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + - + - - - - - - - - - - - - + + + + + + + + + + + - - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + - + - - - - + + + - - + + @@ -8563,44 +9783,53 @@

Heatmap

LibraryCapsModifyVersionGreenPass Rate Read cells/sRaw Read cells/sWrite cells/s -openpyxlR+WRewrite3.1.516/16100% -811β€”759 +openpyxlR+WRewrite3.1.521/21100% +772β€”774 -xlsxwriterWNo3.2.915/1699% -β€”β€”565 +wolfxlRecommendedR+WPatch2.0.821/21100% +1Kβ€”2K -rust_xlsxwriterWNo0.79.414/1697% -β€”β€”3K +aspose-cells-fossR+WRewrite26.7.015/2180% +β€”β€”β€” -wolfxlRecommendedR+WPatchcal=0.1.0+rxw=0.79.414/1697% -5Kβ€”3K +exceljsR+WRewrite4.4.015/2189% +β€”β€”β€” -xlsxwriter-constmemWNo3.2.912/1693% -β€”β€”549 +libreofficeR+WRewrite26.8.0.3 (build bce0998afefdbc355585ca324285661a2170ba77)15/2186% +β€”β€”β€” -xlwtWNo1.3.04/1664% +xlsxwriterWNo3.2.915/2184% +β€”β€”589 + +xlsxwriter-constmemWNo3.2.912/2179% +β€”β€”577 + +sheetjsR+WRewrite0.20.311/2140% +β€”β€”β€” + +xlwtWNo1.3.04/2154% β€”β€”4K -openpyxl-readonlyRNo3.1.53/1623% -213β€”β€” +openpyxl-readonlyRNo3.1.53/2120% +169β€”β€” -pandasR+WRebuild3.0.03/1620% -628β€”658 +pandasR+WRebuild3.0.63/2117% +563β€”635 -pyexcelR+WRebuild0.7.43/1621% -734β€”751 +pyexcelR+WRebuild0.7.63/2111% +671β€”β€” -pylightxlR+WRebuild1.613/1619% -758β€”3K +pylightxlR+WRebuild1.613/2111% +759β€”β€” -tablibR+WRebuild3.9.03/1621% -564β€”492 +tablibR+WRebuild3.10.03/2118% +701β€”739 -python-calamineRNo0.6.11/1617% -1Kβ€”β€” +python-calamineRNo0.8.21/2114% +2Kβ€”β€” -polarsRNo1.38.10/1615% -3Kβ€”β€” +polarsRNo1.44.20/2113% +2Kβ€”β€” xlrdRNo2.0.20/00% β€”β€”β€” @@ -8608,2380 +9837,3747 @@

Heatmap

Feature Details

Tier 0 β€” Core

-

Performance Benchmarks

-
Warmup: 3 · Iterations: 25 · Iteration Policy: fixed · Breakdown: Yes · Platform: Darwin-arm64 · Python: 3.12.3
-

Memory Profiling

@@ -12132,29 +15058,67 @@

Write

xlsxwriterwrite1k1,000+0.120.45375%140.1

Diagnostics

-

1055 total diagnostics

+

1637 total diagnostics

-
975
data_mismatch
-
49
invalid_input
-
31
internal
+
916
data_mismatch
+
608
unsupported_feature
+
69
invalid_input
+
44
internal

By Severity

-
1055
error
+
1029
error
+
608
warning