#imgui #graphics #ui

easy-imgui-renderer

Default renderer for the easy-imgui crate, using OpenGl via glow

32 releases (21 breaking)

Uses new Rust 2024

0.22.0 Apr 5, 2026
0.21.0 Feb 21, 2026
0.20.0 Dec 1, 2025
0.19.0 Oct 26, 2025
0.2.4 Mar 22, 2024

#2076 in GUI


Used in 2 crates (via easy-imgui-window)

MIT license

5.5MB
79K SLoC

C++ 63K SLoC // 0.2% comments Rust 8K SLoC // 0.0% comments Visual Studio Project 4K SLoC Objective-C++ 2.5K SLoC // 0.2% comments C 365 SLoC // 0.3% comments Batch 229 SLoC Visual Studio Solution 220 SLoC Python 104 SLoC // 0.2% comments GLSL 86 SLoC Kotlin 29 SLoC // 0.1% comments PowerShell 14 SLoC // 0.4% comments Shell 1 SLoC // 0.8% comments

easy-imgui-rs

build

Build full GUI applications with Rust and Dear ImGui. It currently uses version v1.92.7.

There are several crates in this repository:

See some examples at the examples directory. The simplest one is just a few lines of code:

use easy_imgui_window::{MainWindow, MainWindowWithRenderer,
    winit::event_loop::EventLoopBuilder,
    easy_imgui as imgui,
};

fn main() {
    let event_loop = EventLoopBuilder::new().build().unwrap();
    let main_window = MainWindow::new(&event_loop, "Example").unwrap();
    let mut window = MainWindowWithRenderer::new(main_window);

    let mut app = App;

    event_loop.run(move |event, w| {
        let res = window.do_event(&mut app, &event, w);
        if res.is_break() {
            w.exit();
        }
    }).unwrap();
}

struct App;

impl imgui::UiBuilder for App {
    fn do_ui(&mut self, ui: &imgui::Ui<Self>) {
        ui.show_demo_window(None);
    }
}

Dependencies

~9–14MB
~285K SLoC