[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f35tgfv2fh2ore":3},{"code":4,"message":5,"data":6,"timestamp":62},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":45,"summary_md":46,"topic":47,"github_topics":50,"license":58,"homepage":59,"updated_at":60,"history":61},"emilk\u002Fegui",18,"egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native","Rust",31717,2244,1102,2841,[16,22,28,34,40],{"id":17,"title":18,"points":19,"comments":20,"posted_at":21},28166663,"Egui: An easy-to-use immediate mode GUI",366,141,"2021-08-13",{"id":23,"title":24,"points":25,"comments":26,"posted_at":27},39837045,"Egui 0.27 – easy-to-use immediate mode GUI for Rust",200,85,"2024-03-27",{"id":29,"title":30,"points":31,"comments":32,"posted_at":33},33859697,"Egui commit: Implement accessibility APIs via AccessKit",96,37,"2022-12-05",{"id":35,"title":36,"points":37,"comments":38,"posted_at":39},38397181,"Egui and Eframe 0.24 Released",5,0,"2023-11-23",{"id":41,"title":42,"points":43,"comments":38,"posted_at":44},46116848,"Egui: An easy-to-use GUI in pure Rust",3,"2025-12-02","A GUI library for Rust developers who need any interface at all, especially inside games and tools.","## The problem\n\nIf 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.\n\n## What's different\n\nIt 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.\n\n## Who it's for\n\nRust developers building developer tools, game editors, debug\u002Finspection 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.\n\n## Cost of adoption\n\nYou commit to Rust and to the eframe\u002Fwinit 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\u002FApache-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.\n\n## Verdict\n\negui 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.",{"slug":48,"name":49},"developer-tools","Developer Tools",[51,52,53,54,55,56,57],"egui","game-development","gamedev","gui","imgui","rust","wasm","Apache-2.0","https:\u002F\u002Fwww.egui.rs\u002F","2026-10-24T19:05:22Z",[],1792883048]