Skip to content

Bindings

omar edited this page Oct 12, 2019 · 237 revisions

Language 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

Framework/Engine Bindings

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

Port/rewrites

Java - JVM port/rewrite, written in Kotlin
https://github.com/kotlin-graphics/imgui

Clone this wiki locally