Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 21 Jun 01:36
· 10 commits to main since this release

Release v0.4.0 ๐Ÿš€

This release delivers major performance optimizations across startup latency, terminal throughput, and GPU rendering, while also fixing visual issues and introducing a comprehensive benchmarking suite for competitive performance analysis.

โšก Performance & I/O Improvements

Increased PTY Buffer Size

  • Increased PTY read buffer size from 8KB to 64KB in terminal_state.rs.
  • Significantly reduces system calls and context switching during heavy terminal output workloads.
  • Improves throughput and responsiveness when processing large volumes of text.

Lazy Font Loading

  • Refactored the font atlas in atlas.rs to pre-render only essential ASCII characters and common punctuation at startup:

    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.- :
    
  • Additional glyphs are now rasterized on demand.

  • Reduced window startup time by approximately 31%, from ~1.67s to ~1.15s.

GPU ShaderModule Caching

  • Implemented a static shader cache using std::sync::OnceLock in pipeline.rs.
  • WGSL shaders are compiled only once and reused across the application.
  • Eliminates redundant shader compilation when resizing atlases or creating new windows.

๐Ÿ› Bug Fixes

Fixed Invisible Text in "About Fasty"

  • Resolved a texture binding issue in pipeline.rs.
  • The UI was incorrectly using the main text bind_group instead of the dedicated ui_bind_group.
  • Version information and application description now render correctly.

Configuration-Aware Font Integration

  • Updated the About window to dynamically use the font family selected in user settings.
  • Removed reliance on statically loaded fonts that may not exist on the host system.
  • Ensures consistent typography across the entire application.

๐Ÿ“Š Benchmarking & Testing

End-to-End Benchmark Suite

  • Added benchmark_e2e.py for automated performance testing.

  • Supports:

    • Building Fasty automatically.
    • Generating large text and ANSI color payloads.
    • Measuring execution latency.
    • Comparing performance against Ghostty and Konsole.

VTE Parser Micro-Benchmarks

  • Added Criterion-based benchmarks in benches/parser_bench.rs.
  • Provides detailed performance validation for the terminal parser.
  • Enables regression detection and optimization tracking over time.

Summary

  • โšก Up to 31% faster startup times through lazy font loading.
  • ๐Ÿ“ˆ Improved terminal throughput with a 64KB PTY buffer.
  • ๐ŸŽฎ Reduced GPU overhead through shader caching.
  • ๐Ÿ› Fixed rendering issues in the About window.
  • ๐Ÿ”ค Proper integration with user-selected fonts.
  • ๐Ÿ“Š Added comprehensive benchmarking infrastructure against competing terminals.