Performance
Overview
panache is designed for speed without compromising on correctness. Built in Rust and compiled to native code, it delivers fast formatting with zero startup overhead.
Benchmark Results
Benchmarks compare panache against popular markdown formatters on real Quarto documents.
Test Environment - CPU: Modern x86_64 processor - panache: v2.7.0 (Rust, native binary) - Prettier: v3.6.2 (Node.js) - Pandoc: v3.7.0.2 (Haskell, native binary) - Documents: Real Quarto files from quarto-dev/quarto-web
Small Document (747 bytes)
| Formatter | Time (ms) | vs panache |
|---|---|---|
| panache | 4.1 | baseline |
| Prettier | 71.8 | 17.7x slower |
| Pandoc | 10.0 | 2.5x slower |
Medium Document (9 KB)
| Formatter | Time (ms) | vs panache |
|---|---|---|
| panache | 8.7 | baseline |
| Prettier | 105.0 | 12.1x slower |
| Pandoc | 32.5 | 3.8x slower |
Tables Document (19 KB)
| Formatter | Time (ms) | vs panache |
|---|---|---|
| panache | 8.5 | baseline |
| Prettier | 131.5 | 15.5x slower |
| Pandoc | 60.0 | 7.1x slower |
Math Document (29 KB)
| Formatter | Time (ms) | vs panache |
|---|---|---|
| panache | 8.7 | baseline |
| Prettier | 143.7 | 16.4x slower |
| Pandoc | 48.1 | 5.5x slower |
Large Document (30 KB)
| Formatter | Time (ms) | vs panache |
|---|---|---|
| panache | 5.8 | baseline |
| Prettier | 133.9 | 23.0x slower |
| Pandoc | 56.6 | 9.7x slower |
Key Takeaways
🚀 Faster Than Alternatives
- 12-23x faster than Prettier - Zero Node.js startup overhead
- 2.5-10x faster than Pandoc - Optimized for formatting (Pandoc is general-purpose)
- Sub-10ms formatting - Imperceptible latency for on-save formatting
⚡ Consistent Performance
panache maintains consistent ~8-9ms formatting time across document sizes (9-30 KB), suggesting excellent algorithmic efficiency. The parser and formatter scale well.
💪 Why So Fast?
- Native compilation - Rust compiles to machine code, no interpreter overhead
- Zero startup time - Unlike Node.js/JVM-based tools
- Efficient parsing - Single-pass parser with integrated inline handling
- Optimized data structures - Lossless CST built with
rowancrate
📊 What About Prettier?
Prettier’s time is dominated by Node.js startup (~60-70ms), not formatting logic. For one-off CLI invocations, panache wins decisively. For long-running processes (e.g., editor integration), Prettier’s startup cost is amortized, but panache remains faster.
🎯 What About Pandoc?
Pandoc is a general-purpose document converter supporting 40+ formats. panache is specialized for markdown/Quarto formatting, enabling focused optimizations. Pandoc remains the gold standard for syntax correctness, but panache delivers 3-10x faster formatting.
Reproducing Benchmarks
All benchmarks are reproducible:
# Download test documents
cd benches/documents && ./download.sh && cd ../..
# Run comparison benchmark
./benches/compare_all.sh
# Or run internal benchmarks
cargo bench --bench formatting