v0.4.0
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.rsto 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::OnceLockinpipeline.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_groupinstead of the dedicatedui_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.pyfor 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.