Skip to content


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

C#/.Net (ImGui.NET): An ImGui wrapper for .NET Core

ChaiScript (imgui-chaiscript): ChaiScript bindings for ImGui

CovScript (covscript-imgui): ImGui Extension for CovScript (Covariant)

D (DerelictImgui): Dynamic bindings to the cimgui library for the D programming language

Go (imgui-go): Go wrapper library for "Dear ImGui"

Go (go-imgui): Go bindings for the dear imgui immediate mode GUI library

Haxe/hxcpp (linc_imgui): binding for imgui

Java (jimgui): Pure Java binding for dear imgui

JavaScript (imgui-js): JavaScript bindings for Dear ImGui using Emscripten and TypeScript + also see web demo

Julia (CImGui.jl]: Julia wrapper for cimgui

Lua (LuaJIT-ImGui): LuaJIT ffi binding for imgui and implementations

Lua: imgui bindings for lua (also see: LOVE binding)

Lua: FFI bindings for LuaJIT

Nim: cimgui bindings for Nim

Odin: Odin binding for Dear ImGui

Pascal (imgui-pas): pascal bindings for imgui

Python (pyimgui): Cython-based Python bindings for dear imgui

Python (Bimpy): Bundled imgui for python

Python (CyImGui): Python bindings for ImGui using Cython. (obsolete)

Python (Ogre-imgui)

PureBasic (pb-cimgui): PureBasic interface to CImGui Wrapper

Ruby (ruby-imgui): Yet another ImGui wrapper for Ruby

Rust (imgui-rs): Rust bindings for ImGui

Rust (imgui-rust): Alternative (personal) imgui rust bindings

Rust: "ImStr" Patch by @bitshifter to use string-range more commonly instead of zero-terminated strings.

Rust: imgui-opengl-renderer

Swift (Swift-imgui): Dear ImGui Swift Wrapper API for macOS and iOS


Java - JVM port/rewrite, written in Kotlin

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.

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.