// GOOD TERMINAL PDF VIEWER

v0.2.6 | MIT LICENSE | RUST

> VERSION_HISTORY

All notable changes to Good Terminal PDF Viewer (GTPV).

Format: Keep a Changelog | Versioning: Semantic Versioning

> [0.2.6] - 2026-01-25

Added

  • Screenshots in README: terminal preview, info command, Neovim integration
  • Sample PDF (tests/fixtures/testing.pdf) for users to test immediately
  • Quick Start section in README with 30-second setup instructions
  • Expanded Neovim integration documentation with performance comparison

Changed

  • Improved README structure with hero screenshot and better navigation
  • Enhanced Neovim section explaining Stream API benefits

> [0.2.5] - 2026-01-25

Added

  • Justfile commands for release workflow:
    • just sync - Sync VERSION file to all project files
    • just pre-push - Format and lint with auto-fix
    • just pre-release - Full validation with tests
    • just dev-push - Push to dev branch
    • just release-dev - Complete dev release workflow
    • just release - Merge dev into main with merge commit

Changed

  • CI now runs on push to dev branch (in addition to PRs to main)
  • Release workflow uses --no-ff for merge commits

> [0.2.4] - 2026-01-25

Fixed

  • Windows build failure caused by platform-specific size assertions in FFI bindings
  • Removed 20 size assertion blocks from pdfium_bindings.rs
  • Fixed cargo fmt formatting in vendor/pdfium-bind/build.rs

Changed

  • Binary size remains ~5.6 MB across all platforms

> [0.2.3] - 2026-01-24

Added

  • Pre-bundled PDFium dynamic libraries for all 7 platforms:
    • macOS ARM64 (libpdfium.dylib)
    • macOS x64 (libpdfium.dylib)
    • Linux x64 (libpdfium.so)
    • Linux ARM64 (libpdfium.so)
    • Windows x64/x86/ARM64 (pdfium.dll)
  • Pre-generated Rust FFI bindings (pdfium_bindings.rs)
  • Windows import libraries (.dll.lib files) for linking

Changed

  • Build no longer downloads PDFium at compile time
  • Build no longer runs bindgen at compile time
  • Reduced build dependencies from ~90 packages to ~20 packages

Removed

  • Build-time PDFium download
  • Build-time bindgen code generation
  • ~70 transitive build dependencies

> [0.2.2] - 2026-01-24

Fixed

  • Vendored pdfium-bind fork to fix libloading 0.9 compatibility issue
  • MSRV compatibility: pinned libloading to 0.8.x for Rust 1.85

Changed

  • Moved pdfium-bind to vendor/pdfium-bind as local dependency

> [0.2.1] - 2026-01-24

Changed

  • Replaced pdfium-render with pdfium-bind for bundled PDFium
  • PDFium is now embedded in the binary (extracted at runtime)
  • No external PDFium installation required

Removed

  • External PDFium dependency requirement
  • LD_LIBRARY_PATH/DYLD_LIBRARY_PATH requirements

> [0.2.0] - 2026-01-24

Added

  • Custom CLI argument parser (replaced clap)
  • Custom LRU cache implementation (replaced lru crate)
  • Custom JSON writer for --json output (replaced serde_json)
  • Custom error types with Display/Error impls (replaced thiserror/anyhow)
  • Custom logging macros (replaced tracing)
  • Blocking I/O for stream mode (replaced tokio)

Removed

  • clap, lru, serde, serde_json, thiserror, anyhow, tracing, tokio dependencies

Changed

  • Significantly reduced dependency tree
  • Improved startup time due to fewer dependencies

> [0.1.0] - 2026-01-24

Initial Release

  • PDF document loading and parsing via PDFium
  • Page rasterization with configurable DPI (default: 150)
  • Kitty graphics protocol support
  • iTerm2 inline images support
  • Sixel protocol support
  • Text-based fallback modes: halfblock, braille, block
  • Interactive viewer: j/k navigation, g/G jump, q quit
  • Stream API for editor integration (gtpv stream)
  • LRU page cache with preloading
  • Commands: view, render, info, stream
  • Cross-platform: macOS (ARM64/x64), Linux (x64 glibc/musl), Windows x64