-
-
Notifications
You must be signed in to change notification settings - Fork 12k
Bindings
NB: 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. 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!
| Language | Bindings |
|---|---|
| C |
cimgui: auto-generated c-api wrapper for Dear ImGui https://github.com/cimgui/cimgui |
| C#/.Net |
ImGui.NET: An ImGui wrapper for .NET Core https://github.com/mellinoe/ImGui.NET |
| 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 |
| D |
DerelictImgui: Dynamic bindings to the cimgui library for the D programming language https://github.com/Extrawurst/DerelictImgui |
| Go |
imgui-go: Go wrapper library for "Dear ImGui" https://github.com/inkyblackness/imgui-go go-imgui: Go bindings for the dear imgui immediate mode GUI library https://github.com/Armored-Dragon/go-imgui |
| Have/hxcpp |
linc_imgui: binding for imgui https://github.com/Aidan63/linc_imgui |
| Java |
jimgui: Pure Java binding for dear imgui https://github.com/ice1000/jimgui |
| 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 |
| 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/patrickriordan/imgui_lua_bindings lua-ffi-bindings: FFI bindings for LuaJIT https://github.com/thenumbernine/lua-ffi-bindings |
| Nim |
nimgui: cimgui bindings for Nim https://github.com/zacharycarter/nimgui |
| Odin |
odin_dear_imgui: Odin binding for Dear ImGui https://github.com/ThisDrunkDane/odin-dear_imgui |
| Pascal |
imgui-pas: pascal bindings for imgui https://github.com/dpethes/imgui-pas |
| 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 |
| PureBasic |
pb-cimgui: PureBasic interface to CImGui Wrapper https://github.com/hippyau/pb-cimgui |
| 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/Gekkio/imgui-rs imgui-rust: Alternative (personal) imgui rust bindings https://github.com/nsf/imgui-rust ImStr Patch by @bitshifter to use string-range more commonly instead of zero-terminated strings. https://github.com/ocornut/imgui/pull/683 rust-imgui-opengl-renderer https://github.com/michaelfairley/rust-imgui-opengl-renderer |
| Swift |
Swift-imgui: Dear ImGui Swift Wrapper API for macOS and iOS https://github.com/mnmly/Swift-imgui |
Main repository include examples for DirectX9, DirectX10, DirectX11, DirectX12, Metal, OpenGL2/3, Vulkan, iOS, Allegro 5, and Marmalade, using frameworks such as Glfw, SDL2, Win32, Cocoa.
https://github.com/ocornut/imgui/tree/master/examples
- Unmerged PR: GTK3 + OpenGL3: https://github.com/ocornut/imgui/pull/2032
- Unmerged PR: Native Win32 and OSX example: https://github.com/ocornut/imgui/pull/281 (old example design)
- Unmerged PR: SDL2 + OpenGLES + Emscripten example: https://github.com/ocornut/imgui/pull/336 (old example design)
- Unmerged PR: Android Example: https://github.com/ocornut/imgui/pull/421 (old example design)
- bsf (bsfimgui): https://github.com/pgruenbacher/bsfImgui
- Cinder: https://github.com/simongeilfus/Cinder-ImGui
- Cocos2d-x: https://github.com/c0i/imguix, https://github.com/Mjarkiew/cocos2dx-imgui, and https://github.com/ocornut/imgui/issues/551
- Diligent Engine: https://github.com/DiligentGraphics/DiligentTools/blob/master/Imgui/src/ImGuiImplDiligent.cpp (example)
- Flexium (FlexGUI): https://github.com/DXsmiley/FlexGUI
- GML/GameMaker Studio 2 (ImGuiGML): https://marketplace.yoyogames.com/assets/6221/imguigml
- Irrlicht Engine (IrrIMGUI): https://github.com/ZahlGraf/IrrIMGUI
- Ogre: https://github.com/OGRECave/ogre-imgui
- OpenSceneGraph/OSG: https://gist.github.com/fulezi/d2442ca7626bf270226014501357042c
- openFrameworks (ofxImGui): https://github.com/jvcleave/ofxImGui
- Orx (ImGuiOrx): https://github.com/thegwydd/ImGuiOrx (was #1843)
- LÖVE+LUA: https://github.com/slages/love-imgui
- Magnum: https://github.com/mosra/magnum-integration (doc, example)
- NanoRT (software raytraced): https://github.com/syoyo/imgui/tree/nanort/examples/raytrace_example
- Nim Game Lib: https://github.com/lmariscal/nimgl
- px_render (px_render_imgui.h): https://github.com/pplux/px/blob/master/px_render_imgui.h (was #1935)
- Qt: imgui-qt3d / QOpenGLWindow (qtimgui) / QtDirect3D / qt6
- SFML: https://github.com/eliasdaler/imgui-sfml (or older: https://github.com/Mischa-Alff/imgui-backends)
- Software renderer: https://github.com/emilk/imgui_software_renderer
- Sokol (sample): https://github.com/floooh/sokol-samples/blob/master/glfw/imgui-glfw.cc
- Unreal Engine 4: https://github.com/segross/UnrealImGui or https://github.com/sronsse/UnrealEngine_ImGui
- vtk (imgui-vtk): https://github.com/trlsmax/imgui-vtk
Java - JVM port/rewrite, written in Kotlin
https://github.com/kotlin-graphics/imgui
Main: Readme - Wiki Home - FAQ - Getting Started - imgui_explorer: Web Demo w/ code
Listings: Language Bindings - Framework/Engine Backends - Third-Party Extensions - Software using Dear ImGui - Articles/Videos
Features: Debug Tools - Docking - Error Handling - Fonts - Images - ImDrawList Rendering - Multi-Viewports - Multi-Select