An easy-to-use immediate mode GUI library for Rust that runs on both web and native platforms.
egui is an immediate mode graphical user interface library written in Rust. It provides a simple and fast way to build interactive applications that can run both in web browsers via WebAssembly and as native desktop or mobile apps. It solves the problem of creating portable, easy-to-integrate GUIs without the complexity of callback-based systems.
Rust developers who need a straightforward GUI for tools, game overlays, or applications, especially those targeting both web and native platforms. It's also suitable for game engine integrators looking to add a UI layer.
Developers choose egui for its simplicity, safety (no unsafe code), and true cross-platform capabilities from a single codebase. Its immediate mode paradigm reduces boilerplate and state synchronization bugs compared to retained mode alternatives.
egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
UI code is written as simple Rust functions without callbacks, reducing state management bugs and boilerplate, as highlighted in the 'Why immediate mode' section.
Same code runs on web via WebAssembly and natively on desktop and mobile, using official integrations like eframe for seamless deployment.
Designed to be embedded into any environment that can render textured triangles, making it ideal for adding GUIs to game engines like Bevy.
No unsafe code and minimal dependencies ensure security and flexibility, allowing use of only needed parts without bloat.
Immediate mode causes frame-delay issues for window sizing and complex layouts, leading to occasional visual flicker as admitted in the 'Disadvantages of immediate mode' section.
The library is in flux with new releases having breaking changes, making it risky for production code that cannot tolerate frequent updates.
Accessibility support via AccessKit is optional and only fully implemented on Windows and macOS, with experimental support elsewhere, limiting screen reader compatibility.
egui is an open-source alternative to the following products: