Add Rust ecosystem comparison benchmark suite#44
Conversation
…sxwriter/edit-xlsx) Introduces benchmarks/rust-comparison with scenarios mirroring the existing Node.js benchmark suite, comparing SheetKit against: - calamine (read-only): read benchmarks, random-access read - rust_xlsxwriter (write-only): write benchmarks, scaling, formulas - edit-xlsx (read/write/modify): all scenarios including modify Covers read, write, styled write, multi-sheet, formulas, strings, merged cells, scaling (1k-100k rows), buffer round-trip, streaming, random-access read, and modify benchmarks. https://claude.ai/code/session_012jgPjB6pTXjQpWarssU9yp
- Canonicalize fixture paths for consistent resolution - Gracefully skip edit-xlsx benchmarks when it cannot open SheetKit- generated fixtures (incompatible xlsx structure) - Add probe check for modify benchmark to avoid runtime panics - Remove unused generate-fixtures binary target from Cargo.toml https://claude.ai/code/session_012jgPjB6pTXjQpWarssU9yp
Signed-off-by: Haze Lee <hazelee@realignist.me>
bbe41a5 to
c653331
Compare
Code ReviewIssue: Decorative Section Marker CommentsFile: The file contains multiple decorative section marker comments using repeated dashes (
Examples of violations:
Suggested fix: Remove all decorative comment lines. Simple section comments without decoration are acceptable (e.g., No other issues found. Checked for bugs and CLAUDE.md compliance. |
Code reviewIssue Found: Section marker comments violate CLAUDE.md The new CLAUDE.md Rule (Line 58):
Examples found in the code: Pattern 1 (dashed lines): // ---------------------------------------------------------------------------
// Helpers
// ---------------------------------------------------------------------------Pattern 2 (equals lines): // ===================================================================
// READ BENCHMARKS: SheetKit vs calamine
// ===================================================================Locations: These decorative section markers appear throughout
Recommended fix: Remove all decorative section marker comment lines. The existing |
Removes 12 decorative comment blocks (dashes/equals lines) that violate the CLAUDE.md code style rule prohibiting section markers and decorative comments. Function names and spacing provide sufficient code structure. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
Adds a comprehensive benchmark suite that compares SheetKit against other popular Rust Excel libraries (calamine, rust_xlsxwriter, and edit-xlsx) across multiple scenarios including read, write, and specialized operations.
Key Changes
New benchmark binary (
benchmarks/rust-comparison/src/main.rs): A 1800+ line benchmark harness that:Benchmark scenarios:
Performance metrics: Captures execution time (with min/max/median/p95 statistics), peak memory usage, and output file size
System information detection: Automatically detects and reports CPU model, RAM, and Rust compiler version for reproducible benchmarking
Platform support: Includes platform-specific code for macOS and Linux to measure RSS memory usage; graceful fallback for other platforms
Workspace integration: Added new benchmark crate to workspace members in root
Cargo.tomlImplementation Details
https://claude.ai/code/session_012jgPjB6pTXjQpWarssU9yp