Software Engineering

PDFA TUI

The latest version of the PDFA desktop application. A complete rebuild in Go with a terminal user interface, built-in batching, and 100x the performance of the original desktop version.

Lost Edges go tui engineering
PDFA TUI
Fast, lean, and terminal-native — PDFA rebuilt from the ground up in Go.
Status: Active

Overview

This is the third iteration of the PDFA desktop application and the fastest version yet. It is a complete rebuild — different language, different interface, dramatically better performance. Where previous versions were traditional desktop GUI applications, this one runs entirely in the terminal.

What Changed

From Python to Go

The previous desktop version was written in C#. C# is a solid language and the rewrite was a big step forward from the original Visual Basic application, but for a calculation-heavy tool with performance as a priority, Go offered some clear advantages. Go was chosen for this rebuild for several practical reasons:

  • It compiles to a single native binary — no Python runtime, no virtual environment, no dependency installer
  • It is fast by default, without needing tricks or workarounds to squeeze out performance
  • Its concurrency model makes running multiple calculations in parallel simple and safe
  • The resulting binary works on any machine, dropped in place and run immediately

The rebuild was not a translation of the existing code. It was a clean redesign with performance and simplicity as the primary goals.

From GUI to TUI

Previous versions of PDFA had a traditional graphical user interface — windows, buttons, menus rendered by a desktop UI framework. This version replaces all of that with a terminal user interface (TUI).

A TUI runs entirely inside a terminal window. It looks and feels like a proper interface — it has navigation menus, data entry forms, results tables, and status indicators — but it requires no display server, no desktop environment, and no UI framework. It runs over SSH, inside CI pipelines, on remote servers, anywhere you have a terminal connection.

For engineers and analysts who already spend time in the terminal, this is a more natural fit than launching a separate GUI application. It also means the tool can be used on machines where a GUI is not available or practical.

Batching

Like the cloud version (see PDFA Cloud), this desktop version also includes a batching mode. Engineers prepare a batch input file specifying multiple scenarios, run a single command, and the application processes all of them in parallel and writes structured output files when finished.

This is useful for:

  • Running sensitivity analyses with many variable combinations
  • Automating analysis as part of a larger script or pipeline
  • Producing a set of results that feeds into a report or downstream tool

Performance

This version is 100x faster than the original Visual Basic desktop application.

That is not a rounding error. A job that used to take 10 minutes now takes around 6 seconds. For batch runs with hundreds of scenarios, the difference is dramatic — what used to be an overnight run now finishes in a few minutes.

The gains come from a few places working together:

  • Go’s compiled execution is fundamentally faster than interpreted Python or VB
  • The concurrency model lets multiple calculations run at the same time on available CPU cores
  • The code was redesigned from scratch, cutting out overhead that had accumulated across previous versions

Who This Is For

This version is aimed at engineers and teams who:

  • Prefer working in the terminal or need to automate analysis in scripts
  • Work on servers or remote systems where a GUI is not available
  • Want a fast, portable tool they can drop into any environment with no setup
  • Need to run batch analyses as part of a larger automated workflow

Relationship to Other Versions

This is one of three related PDFA projects:

  • PDFA Desktop — C# Rewrite — the first modernization of the original VB application
  • PDFA Cloud — the SaaS version built for large-scale, multi-user batch processing
  • PDFA TUI (this project) — the latest standalone desktop version, rebuilt in Go for speed and portability
  • Built in Go. Complete rewrite from Python to Go — a single native binary, faster execution, lower memory use, and no runtime dependencies to manage.
  • Terminal user interface (TUI). Replaced the traditional GUI with a clean, keyboard-driven TUI. Everything runs in the terminal — menus, forms, tables — with no desktop UI framework required.
  • 100x performance. Benchmarks show 100x the throughput of the original desktop version, thanks to Go's native concurrency and a much leaner execution path.
← Back to Projects January 1, 2026