-
-
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!
C (cimgui): auto-generated c-api wrapper for Dear ImGui
also output json/lua data which can be used to automatically generate other bindings
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 (go-imgui): Go bindings for the dear imgui immediate mode GUI library
https://github.com/Armored-Dragon/go-imgui
Haxe/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
Lua (LuaJIT-ImGui): LuaJIT ffi binding for imgui and implementations
https://github.com/sonoro1234/LuaJIT-ImGui
Lua: imgui bindings for lua (also see: LOVE binding)
https://github.com/patrickriordan/imgui_lua_bindings
Lua: FFI bindings for LuaJIT
https://github.com/thenumbernine/lua-ffi-bindings
Odin: 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 (CyImGui): Python bindings for ImGui using Cython.
https://github.com/chromy/cyimgui
Python (pyimgui): Cython-based Python bindings for dear imgui
https://github.com/swistakm/pyimgui
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
Rust (imgui-rust): Alternative (personal) imgui rust bindings
https://github.com/nsf/imgui-rust
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
Java - JVM port/rewrite, written in Kotlin
https://github.com/kotlin-graphics/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: SDL2 + OpenGLES + Emscripten example: https://github.com/ocornut/imgui/pull/336 (old example design)
- Unmerged PR: Native Win32 and OSX example: https://github.com/ocornut/imgui/pull/281 (old example design)
- Unmerged PR: Android Example: https://github.com/ocornut/imgui/pull/421 (old example design)
- Cinder: https://github.com/simongeilfus/Cinder-ImGui
- Cocos2d-x: https://github.com/c0i/imguix and https://github.com/ocornut/imgui/issues/551
- 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://bitbucket.org/LMCrashy/ogreimgui/src, https://github.com/OGRECave/ogre-imgui
- OpenSceneGraph/OSG: https://gist.github.com/fulezi/d2442ca7626bf270226014501357042c
- openFrameworks (ofxImGui): https://github.com/jvcleave/ofxImGui
- Orx: https://github.com/ocornut/imgui/pull/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/cavariux/nimgl
- px_render: https://github.com/ocornut/imgui/pull/1935
- Qt: imgui-qt3d / QOpenGLWindow (qtimgui) / QtDirect3D / qt6
- SFML: https://github.com/EliasD/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
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