Skip to content

Bindings

omar edited this page Jun 17, 2019 · 30 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): 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

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

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

Nim: cimgui bindings for Nim
https://github.com/zacharycarter/nimgui

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 (pyimgui): Cython-based Python bindings for dear imgui
https://github.com/swistakm/pyimgui

Python (Bimpy): Bundled imgui for python
https://github.com/podgorskiy/bimpy

Python (CyImGui): Python bindings for ImGui using Cython. (obsolete)
https://github.com/chromy/cyimgui

Python (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

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

Port/rewrites

Java - JVM port/rewrite, written in Kotlin
https://github.com/kotlin-graphics/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

Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies

Table of contents

Clone this wiki locally
You can’t perform that action at this time.