explaingit

emilk/egui

Analysis updated 2026-06-20

28,978RustAudience · developerComplexity · 3/5Setup · moderate

TLDR

An immediate-mode GUI library for Rust that runs on desktop and in web browsers via WebAssembly, letting you build interfaces by describing them each frame rather than managing a persistent UI tree.

Mindmap

mindmap
  root((egui))
    What it does
      Immediate mode GUI
      Rust native library
      Desktop and web output
    Tech Stack
      Rust
      WebAssembly
      wgpu renderer
    Use Cases
      Game debug panels
      Data viewers
      Internal tools
    Audience
      Rust developers
      Game developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add a live debug overlay with sliders, checkboxes, and value displays to a game engine or simulation written in Rust.

USE CASE 2

Build a data viewer or internal tool with a GUI that compiles to both a native desktop app and a web page from the same Rust code.

USE CASE 3

Create a settings panel for a Rust command-line tool so users can adjust parameters visually without editing config files.

USE CASE 4

Prototype a quick internal dashboard with scrollable tables, color pickers, and collapsible panels without a full UI framework.

What is it built with?

RustWebAssemblywgpuOpenGL

How does it compare?

emilk/eguilbjlaq/antigravity-managerjj-vcs/jj
Stars28,97828,87228,583
LanguageRustRustRust
Setup difficultymoderatehardmoderate
Complexity3/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a working Rust toolchain, compiling to WebAssembly needs additional wasm-pack and trunk setup.

License not specified in the explanation.

In plain English

egui (pronounced "e-gooey") is a library for building graphical user interfaces in the Rust programming language. It works using what is called "immediate mode", instead of setting up a persistent tree of interface elements that react to events, you simply describe what you want to display on every frame, much like drawing to a canvas. This makes it straightforward to reason about: you call a function like "add a button here," and if the button is clicked, you handle it on the same line. The library runs both natively on Windows, Mac, Linux, and Android, and in web browsers via WebAssembly (a technology that lets compiled Rust code run inside a browser). This means the same code can produce either a desktop app or a web app without changes. The companion framework eframe handles the platform-specific setup so you can focus on your interface code. egui includes standard widgets like buttons, sliders, checkboxes, text fields, color pickers, images, collapsible panels, scrollable regions, and moveable windows. It supports anti-aliased rendering (smooth edges on shapes and text), accessibility tools, and multiline text editing with copy/paste. It is particularly well-suited for game developers who want to add a debug or settings panel to a game engine, or for Rust developers who need a quick, self-contained interface for a tool or data viewer. It is not aimed at producing native-looking desktop software, its visual style is its own.

Copy-paste prompts

Prompt 1
Using egui in Rust, build a window with a slider that controls a float value and a label that updates in real time to show the current value.
Prompt 2
Show me how to add a collapsible settings panel to an eframe app that contains checkboxes, a color picker, and a text input field.
Prompt 3
How do I integrate egui into a Bevy game to show a debug overlay displaying frame rate, entity count, and a toggle for wireframe mode?
Prompt 4
Build an egui app that loads a CSV file, renders it as a scrollable table, and lets the user type in a search box to filter rows.
Prompt 5
How do I compile my egui application to WebAssembly so it runs directly in a browser without any server-side code?

Frequently asked questions

What is egui?

An immediate-mode GUI library for Rust that runs on desktop and in web browsers via WebAssembly, letting you build interfaces by describing them each frame rather than managing a persistent UI tree.

What language is egui written in?

Mainly Rust. The stack also includes Rust, WebAssembly, wgpu.

What license does egui use?

License not specified in the explanation.

How hard is egui to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is egui for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub emilk on gitmyhub

Verify against the repo before relying on details.