emilk/egui
A GUI library for Rust developers who need any interface at all, especially inside games and tools.
The problem
If you are writing a Rust tool, a debug overlay, or a game editor, you quickly hit a wall: native toolkits (GTK, Qt, Win32) are painful to wire into a Rust render loop and rarely target the browser, while web stacks mean dividing your project into two languages and two build systems. egui sidesteps this by letting you draw a UI from a plain Rust function that runs every frame, then handing the resulting triangle mesh to whatever renderer you already have, so the same code path serves desktop, wasm, and an embedded engine.
What's different
It is immediate mode, in the imgui lineage: no widget tree to build and mutate, no callbacks, no state syncing between your data and a retained UI — you read your state and emit widgets in one pass. Compared with a desktop toolkit such as GTK or Qt, you give up native look and system integration to gain portability and almost zero glue. The distinguishing engineering choices are that the core library forbids unsafe, keeps dependencies minimal, and is renderer-agnostic — it outputs a mesh that official integrations paint via wgpu, glow, or an existing game engine. The trade-off: an immediate-mode UI re-runs layout and paint every frame, and it is not the place for very large, deep, data-heavy screens.
Who it's for
Rust developers building developer tools, game editors, debug/inspection overlays, internal dashboards, or small native apps that also ship to the web via wasm. People integrating a UI into an existing engine are the second obvious audience. Look elsewhere if you need a native-looking interface, if you are not writing Rust, or if you are building a consumer app that expects a stable API across upgrades — the README is explicit that interfaces are still in flux and releases break things.
Cost of adoption
You commit to Rust and to the eframe/winit stack if you want a standalone app; the eframe route drags in a large dependency set (winit, image, graphics and clipboard crates), and Linux builds of the demo app need system packages such as libgtk-3-dev and libxkbcommon-dev, though the core egui crate itself stays platform agnostic. Dual MIT/Apache-2.0 licensing is friction-free. The real cost is stability risk: this is an actively developed library that has not declared API stability, so plan for churn on minor upgrades. Start from the examples folder or the eframe template, per the README.
Verdict
egui is not a new project riding a wave: it dates to 2019 and has accumulated over 31,000 stars, with an HN thread from 2021 already at 366 points. Recent signal is steady rather than explosive — about 1,100 stars on the monthly Rust board at #18, never on the daily trending board. That profile fits a mature, widely depended-on library with durable organic demand. It is a defensible default for Rust GUIs today, provided you accept immediate mode's limits and the pre-1.0-style API churn.
Hacker News
Written by AI from the project's README, updated October 24, 2026. The project's own docs are the source of truth.