crmne / fastframe
git clone https://github.com/crmne/fastframe.git
v0.14.0 · 2d ago
egui on rails: the shared foundation for native Rust apps built with egui
+2
stars, 24h · #5,601
+~14
stars, 7 days · #6,343
+183
stars, 30 days · #2,740
189
★ total · +8% this week
19
forks · 9 open issues
Star history (as recorded here)
LanguageRust
LicenseMIT
Created2026-09-25 (27d ago)
Last push2d ago
Watchers1
OwnerUser
GitHub topics
Links
- GitHub: github.com/crmne/fastframe
- Homepage: https://fastframe.dev/
- Releases · Issues · Hacker News mentions
README excerpt
fastframe egui on rails. The desktop essentials around your app. Documentation · Get started · Releases · Sponsor Build your interface with egui. Let fastframe handle the parts a desktop app needs around it: native text, themes, tray menus, audio, media keys, sleep and wake, notifications, and updates that can roll back. Each capability is a small Rust crate. Take the ones you need, keep your own layout and product decisions, and run on **Linux, macOS, and Windows**. No telemetry or hosted service is required by the crates. Extracted from ZapFast, Spotifast, Solco, TonePush, and Chat with Work. ## See it Real egui windows from the font specimen, using synthetic text. Interface weights and installed script fallbacks work in both themes. The light specimen uses a validated local font. | Default interface font, dark | Local interface font, light | | --- | --- | | | | Run it with `cargo run -p fastframe-fonts --example fonts`, or append `-- /path/to/font.ttf` to try a local face. Installed fallback faces vary by platform. ## Start with fonts and text Requires **Rust 1.98+** and **egui 0.36.2**. fastframe is not on crates.io yet; pin every fastframe crate to the same release tag: [code] At startup, before the first frame: [code] Then add only what your app uses. Each crate README has its own setup example. The getting started guide explains integration, and the migration guide shows what the existing apps replaced. ## Crates | Crate | What it does | | --- | --- | | `fastframe-text` | Desktop font rendering settings, text scaling, and pixel snapping. | | `fastframe-fonts` | Inter, system or validated local interface fonts, with script and regional Han fallbacks. | | `fastframe-emoji` | Platform colour emoji, drawn off the UI thread, with a bundled fallback. | | `fastframe-icons` | Embedded SVG icon sets, persistent image loading, and shared Lucide icons. | | `fastframe-theme` | Editable JSON palettes, system appearance, live Omarchy themes, and colour transitions. | | `fastframe-i18n` | Bundled gettext catalogs, plural forms, language detection, and translation tooling. | | `fastframe-log` | Per-run logs for bug reports, private-target rewriting, and safe panic logging. | | `fastframe-tray` | Native tray icons and menus on Linux, macOS, and Windows. | | `fastframe-dock` | macOS Dock icons and visibility, plus desktop unread badges. | | `fastframe-titlebar` | Draggable headers, native button layouts, double-click actions, and resize edges. | | `fastframe-shell` | Keep running without a window, reopen it, and restore its size, position, and zoom. | | `fastframe-audio` | Maintained audio input and output, preallocated output conversion, device changes, app and stream names in volume mixers, and rodio mixing. | | `fastframe-scroll` | Platform wheel steps, touchpad momentum, and axis locking. | | `fastframe-autostart` | Start at login through each platform, including Flatpak and hidden startup. | | `fastframe-instance` | One running copy per use