About this project

egui (pronounced "e-gooey") is a simple, fast, and highly portable immediate mode GUI library for Rust. It runs on the web, natively, and can be integrated into game engines. The library is designed to be the easiest-to-use Rust GUI library, with a focus on simplicity, responsiveness, and portability. Key features include: - **Widgets**: Labels, buttons, sliders, text editing, color pickers, and more. - **Layouts**: Horizontal, vertical, columns, and automatic wrapping. - **Text editing**: Multiline, copy/paste, undo, and emoji support. - **Windows**: Move, resize, minimize, and close with automatic sizing and positioning. - **Regions**: Resizing, scrolling, collapsing headers, and panels. - **Rendering**: Anti-aliased lines, circles, text, and convex polygons. - **Accessibility**: Optional AccessKit support for screen readers. - **Customization**: Colors, spacing, fonts, and sizes via `Context::set_style`. It uses an immediate mode paradigm, where the UI is rebuilt every frame, simplifying code by eliminating callbacks and state synchronization issues. This approach makes it easy to use but can be less powerful for complex layouts. Official integrations include `eframe` for web and native apps, `egui_glow` for OpenGL rendering, `egui-wgpu` for WebGPU, and `egui-winit` for windowing. Third-party integrations are available for game engines like Bevy. For developers, egui is ideal for creating simple GUIs in Rust or adding a GUI to a game engine. It is not a framework but a library you call into, and it is not intended for native-looking interfaces or complex retained-mode applications.