Skip to content

Releases: diegoleteliers10/fasty

v0.4.2

23 Jun 01:56

Choose a tag to compare

fix(build): vendor openssl for git2 to fix macOS x86_64 cross-compile

git2's default features include https, which pulls in openssl-sys.
On macos-latest (aarch64) cross-compiling to x86_64, pkg-config can't
locate openssl for the target triple, causing the release build to fail.

Adding 'vendored-openssl' bundles openssl with libgit2, removing the
system dependency and making the cross-compile deterministic.

Refs: v0.4.2 release build failure on x86_64-apple-darwin

v0.4.1

21 Jun 03:13

Choose a tag to compare

fix: align rounded box-drawing corners precisely with shared references

v0.4.0

21 Jun 01:36

Choose a tag to compare

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.

v0.3.9

19 Jun 23:43

Choose a tag to compare

v0.3.9: Mejoras para Windows en instalacion, renderizado y estabilidad

v0.3.8

19 Jun 23:08

Choose a tag to compare

Release v0.3.8 - fix context menu click fallthrough and tab drag anim…

v0.3.7

19 Jun 03:19

Choose a tag to compare

What's Changed in v0.3.7 🚀

This release delivers significant performance improvements, Chrome-style tab tearing, multiple bug fixes, and a cleaner, more maintainable codebase.

⚡ Performance

Instant Window Spawning

  • Shared GPU glyph and UI atlases across all window renderers using Arc<wgpu::Texture>.
  • New windows and detached tabs now spawn almost instantly (<1ms).
  • Eliminates the previous 200–500ms texture allocation overhead.

🗂 User Experience

Chrome-Style Tab Tearing

  • Tabs detach as soon as they leave the window bounds during dragging.
  • Detached windows automatically appear under the mouse cursor.
  • Seamlessly transitions into an OS-level window drag operation.

Drag Threshold Fix

  • Fixed drag_start_y initialization.
  • Tab dragging now correctly respects the 5px movement threshold on both X and Y axes.

🛠 Codebase Improvements

Cleanup

  • Removed compiler warnings and unused variables across:

    • main.rs
    • pipeline.rs
    • atlas.rs
    • widgets/mod.rs

Dead Code Removal

  • Removed the legacy src/pty/ implementation in favor of the portable-pty architecture.

  • Deleted unused helper methods:

    • mark_dirty()
    • strip_osc7_prefix()
    • palette_label()
    • basename_of()
  • Removed the unused proxy field and related WindowContext parameters.


Summary

  • ⚡ Near-instant window creation.
  • 🖱 Smooth Chrome-like tab tearing.
  • 🐛 Improved drag behavior and bug fixes.
  • 🧹 Cleaner, leaner, and more maintainable codebase.

v0.3.6-perf

17 Jun 23:46

Choose a tag to compare

perf(v0.3.6): reduce binary size 17MB->14MB, memory by ~10MB

Binary optimizations (17MB -> 14MB, -18%):
- image: default-features=false, features=[png] (drops avif, exr, tiff, webp, gif, etc)
- alacritty_terminal: default-features=false (drops serde)
- wgpu: default-features=false per-platform (drops unused backends)
- winit: default-features=false, features=[rwh_06, x11, wayland, wayland-dlopen]
- arboard: default-features=false (drops image dep on Windows)
- resvg/usvg: default-features=false (drops gif, webp, memmap-fonts)
- tiny-skia: default-features=false, features=[std] (drops png-format)
- Drop unused x11 direct dep (winit handles it)
- LTO: thin -> fat for slightly better optimization

Memory optimizations (~10MB savings):
- Font atlas: 1536x1536 -> 1024x1024 (-5.4MB GPU)
- Scrollback default: 3000 -> 1000 lines (-4MB per tab)
- LTO: true -> fat

v0.3.6

15 Jun 04:10

Choose a tag to compare

feat(v0.3.6): tab indicators (busy spinner + exit code dot), remove t…

v0.3.5

14 Jun 23:34

Choose a tag to compare

v0.3.5: fluid window resize, rendering fixes, deadlock fix

v0.3.4

11 Jun 04:16

Choose a tag to compare

v0.3.4 — fix Linux auto-update binary replacement