{"data":{"slug":"egui","name":"egui","tagline":"MIT/Apache-2.0 immediate-mode GUI for Rust that runs the same code natively and on the web","category":"rust","categoryName":"Rust","url":"https://www.egui.rs","github":"https://github.com/emilk/egui","pricing":"open-source","hook":"egui is the fastest way to put a GUI on a Rust program: you describe the widgets every frame, there is no retained widget tree to keep in sync, and eframe ships the same app to Windows, macOS, Linux, Android and the browser via Wasm.","whatsGood":"Dual MIT or Apache-2.0 (emilk/egui), release 0.36.2 (2026-09-08). Pure immediate mode, no callbacks, so app state and UI cannot drift apart. The core crate is Wasm-friendly; eframe is the official framework and egui-wgpu / egui_glow plug it into other renderers or game engines. Accessibility through AccessKit on Windows and macOS. Try the live demo at egui.rs before adding a dependency. Development is sponsored by Rerun, whose viewer is built on it. ★~31k.","theCatch":"Pre-1.0 and the README says it plainly: interfaces are in flux and new releases have breaking changes. Immediate mode makes complex layout harder (sizes are not known until a widget is drawn) and the look is not native. On the web it draws to a canvas, so no browser text selection, find-in-page or SEO, and screen-reader support there is still experimental. Vs tauri (web UI in a Rust shell): egui is pure Rust and ideal for tools, editors and debug panels, not for marketing-style apps.","verdict":"The quickest Rust GUI for internal tools, editors and game debug panels — pin the version, because upgrades break.","addedAt":"2026-10-11","featured":false,"domain":"Rust","subSpecialty":"GUI","subcategory":"GUI","tags":["self-host","permissive","active"],"capabilities":["gui","wasm","immediate-mode"],"surfaces":["Self-host"],"ecosystem":["Rust","Multi-platform"],"licenseModel":"Apache-2.0","githubStars":31576,"starsPerWeek":78,"access":"free","archived":false,"repo":{"createdAt":"2019-01-13","pushedAt":"2026-10-15","license":"Apache-2.0","archived":false,"checkedAt":"2026-10-19"}},"related":[{"slug":"rust-lang","name":"Rust","tagline":"Systems programming without the footguns"},{"slug":"tokio","name":"Tokio","tagline":"Async runtime for Rust"},{"slug":"axum","name":"Axum","tagline":"Web framework from the Tokio team"},{"slug":"actix-web","name":"Actix Web","tagline":"Fast Rust web framework"},{"slug":"serde","name":"Serde","tagline":"Serialization framework for Rust"}],"links":{"self":"/api/gems/egui","html":"/gems/egui","markdown":"/gems/egui.md","category":"/api/gems?category=rust","categoryPage":"/stacks/rust"}}