Skip to content

fastframe egui on rails

The small crates behind ZapFast, Spotifast, Solco, TonePush and Chat with Work. Everything a native egui app needs besides its own interface, extracted from apps that already ship it.

fastframe logo

The crates

Take only the crates your app uses. Each one does one job and does it with no configuration.

CrateWhat it does
fastframe-textFollows the desktop's font rendering settings (hinting, antialiasing, sub-pixel positioning, text weight) in egui, and snaps hand-placed text to whole pixels.
fastframe-fontsBundled Inter (tabular figures) at the app's weights, and installed fonts for every script Inter lacks, aligned to its baseline.
fastframe-iconsEmbedded SVG icon sets for egui: the icons! macro, a bytes loader that survives reduce_texture_memory, and the Lucide icons the apps share.
fastframe-themeJSON colour palettes, a catalogue loaded off the interface thread, the eight shared palettes, following the Omarchy desktop's theme with filesystem notifications, and revealing a change of colours from the middle of the window outwards.
fastframe-i18nBundled gettext catalogs: a build-time PO compiler for build.rs, gettext/pgettext/ngettext lookups, system language detection, and the template update script.
fastframe-logLogs to stderr and a per-run file for bug reports, rewrites private targets, and records panics without their payload.
fastframe-trayA tray item with the app's own menu: StatusNotifier on Linux, the notification area on Windows, the menu bar on macOS.
fastframe-macosPuts the macOS traffic lights on the centre line of an app's own title bar, and reads the system's title-bar double-click setting.
fastframe-shellKeeps an app running without a window around eframe::run_native, starts hidden, and brings back windows restored off-screen.
fastframe-updateSelf-update from GitHub releases: detects package-managed installs, verifies signed checksums, installs through a helper with rollback, keeps the handoff format older app versions use, moves renamed installations onto the new name with their launchers, and offers an opt-in pre-release channel.