imgui-rs is a Rust binding library for Dear ImGui, the standard immediate mode user interface library.
The library solves the problem of building graphical user interfaces in Rust by wrapping Dear ImGui's C++ implementation with safe Rust bindings. It provides a high-level safe API through the core imgui crate, while the imgui-sys crate offers low-level unsafe bindings that are automatically generated. The immediate mode approach allows developers to describe UI layouts directly in code without maintaining separate UI state, making it suitable for tools, debugging interfaces, and applications where rapid UI iteration matters.
Developers should choose imgui-rs if they need a lightweight, immediate mode GUI library and are comfortable integrating separate platform and renderer components. The project is not tied to any particular renderer or platform backend, requiring users to select appropriate implementations for their use case. Official backends include imgui-winit-support for window management and input handling, imgui-sdl2-support as an alternative platform layer, and imgui-glow-renderer as the official renderer. The most tested combination is imgui-glow-renderer with imgui-winit-support, though community integrations with wgpu and glium are available. The library provides builder structs to handle optional parameters from the original C++ API and supports optional features like the freetype font rasterizer and the docking branch. API coverage is not complete but continues to improve.
The project maintains active development with regular updates to keep official backends synchronized with releases. The minimum supported Rust version is periodically updated with minor version bumps, indicating ongoing attention to language evolution. Development activity shows consistent engagement with both core library maintenance and ecosystem integration, as evidenced by the coordination of multiple related crates and example implementations across platform and renderer options.