Skip to content

v0.2.0

Choose a tag to compare

@dhh dhh released this 10 Aug 13:09
· 37 commits to master since this release

ttfx 0.2.0 is a performance-focused release that makes every effect faster while preserving byte-for-byte rendering behavior.

Performance

  • Aggregate throughput across all 35 non-clock effects improved from 19,874 to 23,305 FPS (+17.26%).
  • A representative dense 200x50 workload improved aggregate FPS by 32.49%.
  • Beams is 2.15x faster on the standard corpus and 1.99x faster on dense input.
  • Matrix rain is 1.86x to 5.68x faster in isolated 200x50 measurements, depending on color mode.
  • Sampled xterm-heavy workloads are 3.17x to 6.61x faster.
  • The optimized release binary is about 31% smaller than the v0.1.3-era master binary used for comparison.

The gains come from cheaper color storage and xterm conversion, one-pass grouping, adaptive active-character tracking, allocation-free hot paths, direct frame rendering, and effect-specific work elimination.

Correctness and platform support

  • Complete benchmark frame streams remained byte-identical.
  • 354 effect parity cases, 41 terminal byte-stream cases, and 19 CLI cases pass.
  • Linux, macOS, and static musl CI pass.
  • macOS support and platform-tolerant easing goldens are included.

Rust API note

The compact RGB representation changes public color field types from heap-backed strings to RgbString and prevents external Color struct literals. CLI behavior and rendered output are unchanged.