finds.dev← search

// the find

ocornut/imgui

★ 73,706 · C++ · MIT · updated Jun 2026

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Dear ImGui is the de facto standard immediate-mode GUI library for C++, primarily targeting game engine tooling, debuggers, profilers, and dev tools. You call widget functions every frame instead of managing a widget tree, which eliminates most UI state synchronization headaches. It's not for shipping end-user interfaces — it's for the tools programmers use while building software.

- Zero external dependencies in the core: drop 8 files into your project and you're done. The vendor-everything approach means it actually builds on consoles, embedded targets, and ancient toolchains without fighting a package manager.

- Backend coverage is exceptional — DX9 through DX12, Vulkan, Metal, WebGPU, OpenGL, SDL_GPU, plus platform backends for Win32, GLFW, SDL2/3, Android, OSX. Mixing them (e.g. GLFW + Vulkan) takes under 50 lines of glue code.

- imgui_demo.cpp is one of the best 'living documentation' examples in any open source project. Every widget has a working demo with the source visible right there, and ShowDemoWindow() runs in your own binary so you see it against your actual renderer.

- Actively maintained with 12 years of production use across the game industry (Valve, Unity, Remedy, etc.), so edge cases that would crash lesser libraries have long since been fixed and regression-tested.

- No proper text internationalization: RTL text, bidirectional layout, complex scripts (Arabic, Devanagari, CJK with proper shaping) are not supported out of the box. Freetype integration helps with rendering but shaping is your problem.

- The docking and multi-viewport features that many users actually want live on a separate branch ('docking') that has never been merged to master despite years of maturity — you have to track a different branch, which complicates dependency management and vendoring.

- Accessibility is essentially nonexistent: no screen reader support, no proper focus management for keyboard-only navigation in complex UIs. Fine for internal tools, a blocker if you need to ship anything to a general audience.

- Because it redraws every frame and does no dirty-checking, CPU usage stays elevated even when nothing is happening. For a standalone tool window sitting idle this can be surprisingly wasteful without manual throttling of the render loop.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →