Skip to content

Bindings

omar edited this page Jul 3, 2018 · 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!

C (cimgui): thin c-api wrapper for ImGui
https://github.com/Extrawurst/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 (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: 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

Rust (imgui-rs): Rust bindings for ImGui
https://github.com/Gekkio/imgui-rs

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

Port/rewrites

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

Framework/engine bindings

Main ImGui repository include examples for DirectX9, DirectX10, DirectX11, DirectX12, OpenGL2/3, Vulkan, Allegro 5, SDL+GL2/3, iOS and Marmalade.
https://github.com/ocornut/imgui/tree/master/examples

Clone this wiki locally