[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f3uwex4maop791":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","给需要界面的 Rust 开发者，尤其是游戏和工具内嵌 UI 场景，一个跨桌面与 Web 的即时模式 GUI 库。","## 解决什么问题\n\n写 Rust 工具、调试面板或游戏编辑器时，界面是最麻烦的一段：GTK、Qt、Win32 这类原生工具包接进 Rust 渲染循环很不顺，而且基本不考虑浏览器；走 Web 技术栈又要把工程拆成两种语言、两套构建。egui 的做法是让你每帧用一个 Rust 函数描述界面，产出一份三角形网格交给现有的渲染器，因此桌面、wasm 和嵌进游戏引擎可以是同一份代码。\n\n## 有什么不同\n\n它是即时模式，属于 imgui 这一路：没有要反复增删的控件树，没有回调和数据同步，你读状态、发出控件，一次跑完。和 GTK、Qt 这类保留式桌面工具包相比，代价是放弃原生外观和系统集成，换来可移植性和几乎为零的胶水代码。真正有辨识度的工程取舍是：核心库禁用 `unsafe`，默认依赖很少，且与渲染器解耦——只输出网格，由官方集成用 wgpu、glow 或你已有的游戏引擎绘制。反过来说，即时模式每帧都要重跑布局与绘制，也不适合层级很深、数据量很大的复杂界面。\n\n## 适合谁\n\n用 Rust 写开发者工具、游戏编辑器、调试\u002F检视浮层、内部小面板，或者希望同一份代码同时出桌面端和 wasm 网页端的人。需要往现有引擎里塞 UI 的开发者是另一类明显受益者。如果你要求原生外观、不写 Rust，或者在做需要跨版本稳定 API 的消费级产品，就别选它——README 自己写明了接口仍在变化、新版本会有破坏性改动。\n\n## 上手成本\n\n前提是接受 Rust，独立应用还要接受 eframe\u002Fwinit 这套栈：走 `eframe` 会引入大量依赖（winit、image、图形与剪贴板相关 crate），在 Linux 上跑 demo app 还需要 libgtk-3-dev、libxkbcommon-dev 等系统包，不过 egui 核心本身是平台无关的。MIT\u002FApache-2.0 双许可，基本没有法律摩擦。真正的成本是稳定性风险：项目在活跃开发中，尚未承诺 API 稳定，小版本升级要预留改代码的时间。按 README 指引，从 `examples\u002F` 或 eframe template 起步。\n\n## 点评\n\negui 不是靠热点起量的新项目：2019 年创建，至今 3 万 1 千多 star，2021 年的 HN 讨论已有 366 分。最近的热度属于平稳而非爆发——Rust 月榜约 1,100 star 排第 18，从未上过每日趋势榜。这个画像更像一个有长期真实需求的成熟基础库。对今天要写 Rust GUI 的人来说，它是可以当默认选项的方案，前提是你接受即时模式的能力边界和近似 1.0 之前的 API 变动。",{"slug":48,"name":49},"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",[],1792883128]