Skip to content

Bindings

omar edited this page Sep 12, 2024 · 182 revisions

(had to turn off wiki editing, see Home for details. you may post meaningful wiki diff in Issues)

Index

Binding Generators

cimgui

https://github.com/cimgui/cimgui
Output C API + output metadata (see generator/output/ folder) which can be used to automatically generate other bindings.

dear_bindings

https://github.com/dearimgui/dear_bindings
Dear Bindings generates a C API for Dear ImGui, and metadata so other languages can easily generate their own bindings on top.
Can parse imgui.h, imgui_internal.h etc. and generate neatly decorated C versions (full comments, alignment).

litgen

https://pthom.github.io/litgen/
litgen is an automatic bindings generator from C++ to Python. It emits binary bindings and preserves the original documentation in a python stub (comparable to a C header file): compare imgui.h to its python translation. It can produce bindings for Dear ImGui and other libraries. It is used to maintain up to date bindings inside Dear ImGui Bundle (link).


Language Bindings

Note: those bindings may be more or less maintained, more or less close to the spirit of original API. People who create language bindings sometimes haven't used the C++ API themselves. Dear ImGui was designed for C++ and some of the subtleties may be lost in translation with other languages. If your language supports it, I would suggest replicating the function overloading and default parameters used in the original, else the API may be harder to use. In doubt, always check the original C++ version first!

Now on to the list...

Language Project
Beef imgui-beef: auto-generated Beef wrapper library for Dear ImGui
https://github.com/RogueMacro/imgui-beef
C cimgui: auto-generated c-api wrapper for Dear ImGui
**(metadata output from cimgui can be used to automatically generate other bindings)**
https://github.com/cimgui/cimgui

dear_bindings: auto-generated c-api wrapper for Dear ImGui
**(metadata output from cimgui can be used to automatically generate other bindings)**
https://github.com/dearimgui/dear_bindings
C#/.Net ImGui.NET: An ImGui wrapper for .NET Core
https://github.com/mellinoe/ImGui.NET
DearImGui: imgui + implot for .NET + a controller for OpenGL (OpenTK)
https://github.com/aybe/DearImGui
C++17 ImGuiWrapper: CMakeList wrapper and C++17 RAII encapsulation for accessing Imgui
ChaiScript imgui-chaiscript: ChaiScript bindings for ImGui
https://github.com/JuJuBoSc/imgui-chaiscript
CovScript covscript-imgui: ImGui Extension for CovScript (Covariant)
https://github.com/covscript/covscript-imgui
Crystal crystal-imgui: Crystal bindings to Dear ImGui
https://github.com/oprypin/crystal-imgui
D BindBC-ImGui: Static & dynamic bindings to Dear ImGui, compatible with BetterC, @nogc, and nothrow.
https://github.com/BindBC/bindbc-imgui
DerelictImgui: Dynamic bindings to cimgui for the D programming language
https://github.com/Extrawurst/DerelictImgui
Go cimgui-go: Go wrapper library for "Dear ImGui"
https://github.com/AllenDang/cimgui-go
Haskell dear-imgui.hs: Haskell bindings to Dear ImGui,
https://github.com/haskell-game/dear-imgui.hs
imgui-haskell: Haskell bindings for Dear ImGui
https://github.com/dbousamra/imgui-haskell
Haxe/hxcpp linc_imgui: binding for imgui
https://github.com/Aidan63/linc_imgui
Haxe/Heaps hlimgui: Heaps game engine binding for Dear ImGui
https://github.com/haddock7/hlimgui
Java jimgui: Pure Java binding for dear imgui
https://github.com/ice1000/jimgui
imgui-java: JNI based binding for Dear ImGui
https://github.com/SpaiR/imgui-java
JavaScript imgui-js: JavaScript bindings for Dear ImGui using Emscripten and TypeScript
https://github.com/flyover/imgui-js + also see web demo
Julia CImGui.jl: Julia wrapper for cimgui
https://github.com/Gnimuc/CImGui.jL
Kotlin kotlin-imgui: Kotlin bindings for Dear ImGui
https://github.com/Dominaezzz/kotlin-imgui
Lobster imgui.lobster:
http://strlen.com/lobster/
Lua LuaJIT-ImGui: LuaJIT ffi binding for imgui and implementations
https://github.com/sonoro1234/LuaJIT-ImGui
imgui_lua_bindings: imgui bindings for lua (also see LÖVE binding)
https://github.com/casssoft/imgui_lua_bindings (unmaintained)
https://github.com/megumumpkin/imgui_lua_bindings (up to date fork)
lua-ffi-bindings: FFI bindings for LuaJIT
https://github.com/thenumbernine/lua-ffi-bindings
sol2_imgui_bindings: ImGui bindings for Sol2
https://github.com/MSeys/sol2_ImGui_Bindings
Gideros_ImGui: ImGui bindings for Gideros Studio
https://github.com/MultiPain/Gideros_ImGui
Nim nim-imgui: cimgui bindings for Nim
https://github.com/nimgl/imgui
Odin odin-imgui: Odin binding for Dear ImGui
https://gitlab.com/L-4/odin-imgui
Pascal imgui-pas: pascal bindings for imgui
https://github.com/dpethes/imgui-pas
PureBasic pb-cimgui: PureBasic interface to CImGui Wrapper
https://github.com/hippyau/pb-cimgui
Python pyimgui: Cython-based Python bindings for dear imgui
https://github.com/swistakm/pyimgui
Bimpy: Bundled imgui for python
https://github.com/podgorskiy/bimpy
CyImGui: Python bindings for ImGui using Cython. (obsolete)
https://github.com/chromy/cyimgui
Ogre-imgui:
https://github.com/OGRECave/ogre-imgui
deargui: Python bindings for dear imgui, generated with clang and pybind11
https://github.com/cammm/deargui
Dear ImGui Bundle: autogenerated bindings and stubs for ImGui (as well as ImPlot, ImGuizmo, node-editor, etc.)
https://github.com/pthom/imgui_bundle

Also see DearPyGui below for a RM-style framework.
ReaScript ReaImGui: ReaScript binding and REAPER backend for Dear ImGui
https://forum.cockos.com/showthread.php?t=250419
Ruby ruby-imgui: Yet another ImGui wrapper for Ruby
https://github.com/vaiorabbit/ruby-imgui
Rust imgui-rs: Rust bindings for ImGui
https://github.com/imgui-rs/imgui-rs
imgui-rust: Alternative (personal) imgui rust bindings
https://github.com/nsf/imgui-rust
ImStrv Patch by @bitshifter/@rokups to use string-range more commonly instead of zero-terminated strings.
https://github.com/ocornut/imgui/pull/3038
rust-imgui-opengl-renderer
https://github.com/michaelfairley/rust-imgui-opengl-renderer
easy-imgui-rs: Rust crates to build full GUI applications.
https://github.com/rodrigorc/easy-imgui-rs
Swift SwiftGui: an experimental API inspired by SwiftUI declarative code, using Dear ImGui and running on OSX and iOS.
https://github.com/erickjung/SwiftGUI
SwiftImGui: Swift wrapper around Dear imgui for macOS, iOS and linux
https://github.com/ctreffs/SwiftImGui
Swift-imgui: Dear ImGui Swift Wrapper API for macOS and iOS
https://github.com/mnmly/Swift-imgui
Zig zig-gamedev/zgui: Easy to use dear imgui bindings (includes ImPlot)
https://github.com/michal-z/zig-gamedev/blob/main/libs/zgui
Zig-ImGui: Zig bindings for ocornut/imgui, generated using cimgui/cimgui
https://github.com/SpexGuy/Zig-ImGui
zig-imgui: ImGui bindings for Zig, generated using dear bindings
https://github.com/pdoane/zig-imgui
zig_workbench
https://github.com/DarknessFX/zig_workbench

Framework/Engine Backends

Main repository include examples for DirectX9, DirectX10, DirectX11, DirectX12, Metal, OpenGL2/3, Vulkan, SDL_Renderer, iOS, WebGPU, using frameworks such as GLFW, SDL2, Win32, GLUT, Android, OSX/Cocoa, Allegro. See examples/ and BACKENDS.md for details.

Other backends:

Framework Project
AGS / Adventure Game Studio agsimgui:
https://github.com/ericoporto/agsimgui
Amethyst amethyst-imgui:
https://github.com/amethyst/amethyst-imgui
Blender BlenderImgui:
https://github.com/eliemichel/BlenderImgui
bsf bsfimgui:
https://github.com/pgruenbacher/bsfImgui
Cinder Cinder-ImGui:
https://github.com/cinder/Cinder/blob/master/include/cinder/CinderImGui.h
Cocos2d-x imguix:
https://github.com/c0i/imguix
cocos2dx-imgui:
https://github.com/Mjarkiew/cocos2dx-imgui, https://github.com/Xrysnow/cocos2d-x-imgui and #551
ImGui for axmol:
https://github.com/axmolengine/axmol/tree/dev/extensions/ImGui
Defold extension-imgui:
https://github.com/britzl/extension-imgui
Diligent Engine DiligentTools:
DiligentTools, example
Ebiten ebiten-imgui:
https://github.com/gabstv/ebiten-imgui
Flexium FlexGUI:
https://github.com/DXsmiley/FlexGUI
GLEQ Event processing:
#3034
GML / GameMaker Studio 2 ImGuiGML:
https://marketplace.yoyogames.com/assets/6221/imguigml
ImGui_GM:
https://nommiiin.itch.io/imgui-gm / https://github.com/nommiin/ImGui_GM
Godot imgui-godot:
https://github.com/pkdawson/imgui-godot
godot-dear-imgui:
https://github.com/Blackdrop-Interactive-AB/godot-dear-imgui
GTK3 + OpenGL3 imgui_impl_gtk3:
Unmerged PR: #2032
Irrlicht Engine IrrIMGUI:
https://github.com/Armmegon/Irrlicht-ImGui
JUCE imgui_juce:
https://github.com/Krasjet/imgui_juce
LÖVE+LUA love-imgui:
https://github.com/slages/love-imgui
love-imgui (fork):
https://github.com/MikuAuahDark/love-imgui
LuaJIT-ImGui (ffi):
https://github.com/sonoro1234/LuaJIT-ImGui
cimgui-love (ffi):
https://codeberg.org/apicici/cimgui-love
Mach engine mach/imgui:
https://github.com/machlibs/imgui
Magnum magnum-integration:
https://github.com/mosra/magnum-integration, doc, example
Marmalade imgui_impl_marmalade:
backend + example
Monogame ImGui.NET for MonoGame:
https://github.com/roy-t/ImGui.NET
NanoRT imgui_impl_raytrace:
https://github.com/syoyo/imgui/tree/nanort/examples/raytrace_example
nCine nCine Out-of-the-box integration:
https://github.com/nCine/nCine and example 1, example 2
Nim Game Lib NimGL:
https://github.com/nimgl/nimgl
Nintendo 3DS (homebrew) libctru/libcitro3d:
https://github.com/mtheall/ftpd/tree/master/source/3ds
Nintendo Switch (homebrew) libnx/libdeko3d:
https://github.com/mtheall/ftpd/tree/master/source/switch
https://github.com/scturtle/imgui_deko3d_example
Nintendo Wii U (homebrew) wut/GX2:
https://github.com/GaryOderNichts/imgui
Ogre ogre-imgui:
https://github.com/OGRECave/ogre-imgui
openFrameworks ofxImGui:
https://github.com/jvcleave/ofxImGui
OpenSceneGraph/OSG imgui-osg:
https://github.com/Tordan/imgui-osg and older gist: https://gist.github.com/fulezi/d2442ca7626bf270226014501357042c
Orx ImGuiOrx:
https://github.com/thegwydd/ImGuiOrx (was #1843)
Photoshop Recipe: Custom UI for plug-ins using Dear ImGui:
https://sonictk.github.io/ps_cpp_recipes/#recipe:customuiforplug-insusingimgui
https://github.com/sonictk/ps_cpp_recipes
px_render px_render_imgui.h:
https://github.com/pplux/px/blob/master/px_render_imgui.h (was #1935)
raylib rlImGui:
https://github.com/raylib-extras/rlImGui
RGFW imgui_imp_rgfw.h:
https://github.com/ColleagueRiley/imgui_imp_rgfw.h/
Qt imgui-qt3d:
https://github.com/alpqr/imgui-qt3d

QQuickItem (qrhiimgui2):
Qt >= 6.4 https://github.com/alpqr/qrhiimgui2
Has a sample to integrate it in a QWindow if not using QtQuick. Supports imgui 1.87+

QQuickItem (qrhiimgui):
Qt >= 6 https://github.com/alpqr/qrhiimgui
Has a sample to integrate it in a QWindow if not using QtQuick.
IMPORTANT: Requires a patch merged in a newer version of Qt 6 in order to use it in QML. Consider using qrhiimgui2 instead.

QQuickItem (imgui-qtquick):
(OpenGL only, Qt 5+) https://github.com/alpqr/imgui-qtquick
QOpenGLWindow (qtimgui):
https://github.com/seanchas116/qtimgui
QtDirect3D:
https://github.com/giladreich/QtDirect3D
SDL_Renderer imgui_sdl:
https://github.com/Tyyppi77/imgui_sdl

We now have an official imgui_impl_sdlrenderer2 backend.
SFML imgui-sfml:
https://github.com/SFML/imgui-sfml
Sokol sokol-samples:
https://github.com/floooh/sokol-samples/blob/master/glfw/imgui-glfw.cc
Unity dear-imgui-unity:
https://github.com/realgamessoftware/dear-imgui-unity
uimgui:
https://github.com/psydack/uimgui
Unreal Engine UnrealImGui:
- original: https://github.com/segross/UnrealImGui (2017-2021)
- fork: https://github.com/benui-dev/UnrealImGui (2022-2023)
- fork: https://github.com/IDI-Systems/UnrealImGui (2022-2023)
- alt: https://github.com/sleeptightAnsiC/ImGui-for-Blueprints (2022)
VesCodes/ImGui (2023-2024) (w/ docking and multi-viewports)
https://github.com/VesCodes/ImGui
UnrealImGuiDocker (2023) (w/ docking and multi-viewports):
https://github.com/Sharundaar/UnrealImGuiDocker
UnrealEngine_ImGui (2017):
https://github.com/sronsse/UnrealEngine_ImGui
UnrealNetImgui (plugin for NetImgui, 2020-2024):
https://github.com/sammyfreg/UnrealNetImgui

Also see: Useful Extensions: Unreal Engine specific for: Cog, PropertyWatcher, UnrealImGuiTools etc.
UWP imgui-uwp:
https://github.com/ahmed605/imgui-uwp
https://github.com/ocornut/imgui/pull/6579
vtk imgui-vtk:
https://github.com/trlsmax/imgui-vtk
vtkDearImGUIInjector:
https://github.com/jspanchu/vtkDearImGUIInjector
vtkImGuiAdapter:
https://github.com/phcerdan/vtkImGuiAdapter
VulkanHpp ImGui-VulkanHpp:
https://github.com/takiyu/ImGui-VulkanHpp
VulkanSceneGraph vsgImGui:
https://github.com/vsg-dev/vsgImGui
vvvv VL.ImGui:
https://github.com/vvvv/VL.StandardLibs/tree/main/VL.ImGui
(Shipping with vvvv out-of-the-box)
Win32 GDI renderer imgui_impl_gdi:
Unmerged PR: #2724
WxWidgets wxImGuiCanvas.h:
https://github.com/ocornut/imgui/issues/1029

Miscellaneous

Purpose Project
Software renderer imgui_software_renderer
https://github.com/emilk/imgui_software_renderer
Software renderer ImFastRast
https://github.com/malamanteau/ImFastRast
Software renderer ImSoft
https://github.com/LAK132/ImSoft
ImGui on Arduino example ImDuino
https://github.com/LAK132/ImDuino
Retained framework DearPyGui A retained framework build over Dear ImGui
https://github.com/hoffstadt/DearPyGui

Ports, Rewrites, Clones

(notable rewrites or clones, those are not supported on this repository)

Language Project
Javascript imgui-njs: imgui-njs is a manual-port / partial-rewrite of dear imgui
https://github.com/cannerycoders/imgui-njs
Kotlin dear jvm imgui: full JVM port/rewrite
https://github.com/kotlin-graphics/imgui
Roblox Iris: Iris is an Immediate mode GUI Library for Roblox, Based on Dear ImGui
https://github.com/Michael-48/Iris