Typographist vs Typograf 7.8.0
Node v24.21.0; 13th Gen Intel(R) Core(TM) i5-13420H. Nine batches after ten warmups; medians per call. Lower is
faster. Bars share a scale within each workload.
Selected rules are close in scope, but outputs differ. Typograf defaults perform extra cleanup; full Typographist
adds hyphenation. Quote spacing is disabled only for our symbolic profile. Construction is excluded.
long-en (15400 UTF-16 units)
Ours: symbolic (optimized)
1.053 ms
Typograf: selected rules
0.685 ms
Typograf: defaults
0.932 ms
Ours: full (optimized)
2.428 ms
Ours: symbolic (baseline)
2.990 ms
Ours: full (baseline)
5.818 ms
repeated-en (16800 UTF-16 units)
Ours: symbolic (optimized)
0.222 ms
Typograf: selected rules
0.274 ms
Typograf: defaults
0.435 ms
Ours: full (optimized)
0.727 ms
Ours: symbolic (baseline)
0.223 ms
Ours: full (baseline)
0.661 ms
mostly-unique-en (15599 UTF-16 units)
Ours: symbolic (optimized)
0.217 ms
Typograf: selected rules
0.305 ms
Typograf: defaults
0.482 ms
Ours: full (optimized)
0.756 ms
Ours: symbolic (baseline)
0.210 ms
Ours: full (baseline)
0.646 ms
long-ru (16300 UTF-16 units)
Ours: symbolic (optimized)
2.629 ms
Typograf: selected rules
1.189 ms
Typograf: defaults
1.860 ms
Ours: full (optimized)
4.492 ms
Ours: symbolic (baseline)
5.771 ms
Ours: full (baseline)
9.558 ms
repeated-ru (14400 UTF-16 units)
Ours: symbolic (optimized)
0.485 ms
Typograf: selected rules
0.570 ms
Typograf: defaults
1.164 ms
Ours: full (optimized)
1.698 ms
Ours: symbolic (baseline)
1.004 ms
Ours: full (baseline)
2.204 ms
mostly-unique-ru (15599 UTF-16 units)
Ours: symbolic (optimized)
0.736 ms
Typograf: selected rules
0.864 ms
Typograf: defaults
1.946 ms
Ours: full (optimized)
2.065 ms
Ours: symbolic (baseline)
1.285 ms
Ours: full (baseline)
2.647 ms
prose-20-en (1900 UTF-16 units)
Ours: symbolic (optimized)
0.054 ms
Typograf: selected rules
0.099 ms
Typograf: defaults
0.135 ms
Ours: full (optimized)
0.197 ms
Ours: symbolic (baseline)
0.102 ms
Ours: full (baseline)
0.501 ms
prose-160-en (15200 UTF-16 units)
Ours: symbolic (optimized)
0.407 ms
Typograf: selected rules
0.638 ms
Typograf: defaults
0.863 ms
Ours: full (optimized)
1.474 ms
Ours: symbolic (baseline)
0.771 ms
Ours: full (baseline)
3.934 ms
prose-640-en (60800 UTF-16 units)
Ours: symbolic (optimized)
1.641 ms
Typograf: selected rules
2.542 ms
Typograf: defaults
3.256 ms
Ours: full (optimized)
5.960 ms
Ours: symbolic (baseline)
3.063 ms
Ours: full (baseline)
15.467 ms
prose-20-ru (2040 UTF-16 units)
Ours: symbolic (optimized)
0.126 ms
Typograf: selected rules
0.184 ms
Typograf: defaults
0.301 ms
Ours: full (optimized)
0.333 ms
Ours: symbolic (baseline)
0.274 ms
Ours: full (baseline)
0.822 ms
prose-160-ru (16320 UTF-16 units)
Ours: symbolic (optimized)
0.848 ms
Typograf: selected rules
1.223 ms
Typograf: defaults
1.964 ms
Ours: full (optimized)
2.502 ms
Ours: symbolic (baseline)
2.003 ms
Ours: full (baseline)
6.356 ms
prose-640-ru (65280 UTF-16 units)
Ours: symbolic (optimized)
3.306 ms
Typograf: selected rules
4.649 ms
Typograf: defaults
7.257 ms
Ours: full (optimized)
9.986 ms
Ours: symbolic (baseline)
7.994 ms
Ours: full (baseline)
24.765 ms
Raw inputs, settings and timing samples