Core Philosophy
Performance First - Arena-based allocation for zero-copy parsing
Standards Compliant - Full CommonMark + GFM support with mdast-compatible AST
Framework Agnostic - Works with any JavaScript framework via NAPI
Developer Experience - Excellent TypeScript types and error messages
Quick Links
Getting Started - Installation and first steps
Architecture - Deep dive into the design
Theming - Customize your documentation site
GitHub - Source code and issues
Benchmarks
Latest local parse-benchmark run on 2026-03-07 with Node v24.14.0 on Apple M2 Max:
Parse Only (48.7 KB)
| Library | ops/sec | throughput | relative |
|---|---|---|---|
@ox-content/napi |
2463 | 117.22 MB/s | 1.00x |
md4w (md4c) |
735 | 34.99 MB/s | 3.35x slower |
markdown-it |
639 | 30.43 MB/s | 3.85x slower |
marked |
362 | 17.25 MB/s | 6.80x slower |
remark |
32 | 1.51 MB/s | 77.86x slower |
Parse + Render (48.7 KB)
| Library | ops/sec | throughput | relative |
|---|---|---|---|
@ox-content/napi |
2122 | 100.97 MB/s | 1.00x |
md4w (md4c) |
1903 | 90.54 MB/s | 1.12x slower |
markdown-it |
532 | 25.31 MB/s | 3.99x slower |
marked |
345 | 16.42 MB/s | 6.15x slower |
micromark |
34 | 1.62 MB/s | 62.35x slower |
remark |
28 | 1.33 MB/s | 75.81x slower |
Reproduce with:
node benchmarks/bundle-size/parse-benchmark.mjs
The benchmark includes md4w (md4c) by default and adds Bun.markdown.html automatically when bun is available.