Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. cimgui-go

cimgui-go

MITC++v1.5.0

Auto-generated Go wrapper for Dear ImGui via cimgui, providing multiple backend implementations for GUI applications.

GitHubGitHub
530 stars72 forks0 contributors

What is cimgui-go?

cimgui-go is an auto-generated Go wrapper for the Dear ImGui library via the cimgui C API. It provides Go developers with a complete binding to create immediate-mode graphical user interfaces for desktop, game, and embedded applications. The project solves the problem of manually maintaining CGO bindings by automating code generation from cimgui definitions.

Target Audience

Go developers building cross-platform GUI applications, game tools, or embedded interfaces who want to leverage Dear ImGui's powerful immediate-mode UI paradigm without writing C/C++ code.

Value Proposition

Developers choose cimgui-go because it offers a comprehensive, up-to-date, and idiomatic Go API for Dear ImGui with minimal manual maintenance, includes multiple production-ready backends out of the box, and simplifies deployment with pre-compiled libraries for major platforms.

Overview

Auto generated Go wrapper for Dear ImGui via cimgui

Use Cases

Best For

  • Building desktop application tools and editors in Go
  • Creating game development tools and debug UIs
  • Developing embedded Linux GUI applications for kiosks or devices
  • Prototyping graphical interfaces quickly with immediate-mode rendering
  • Integrating Dear ImGui into existing Go projects without C++
  • Cross-platform GUI applications targeting Windows, macOS, and Linux

Not Ideal For

  • Projects deploying to older Linux distributions like Debian, due to glibc compatibility issues with pre-compiled libraries.
  • Applications requiring full desktop GUI features on embedded Linux, as the DRM/EGL backend lacks window management and input event support.
  • Teams that need to avoid CGO for simpler cross-compilation or deployment, as it adds complexity and platform dependencies.
  • Developers frequently using C callbacks, since the workaround has a limited pool that can exhaust and cause crashes.

Pros & Cons

Pros

Auto-Generated Bindings

Go code is programmatically generated from cimgui definitions, ensuring comprehensive and up-to-date coverage of the Dear ImGui API without manual maintenance, as highlighted in the key features.

Multiple Backend Support

Includes ready-to-use backends for GLFW, SDL2, Ebitengine, and DRM/EGL, abstracting platform-specific rendering and input handling, with examples provided for each.

Cross-Platform with Pre-compiled Libs

Works on macOS, Windows, and Linux with pre-compiled static libraries for ImGui, GLFW, and SDL2, speeding up the build process on supported systems, as noted in the setup.

Plugin Integration

Provides bindings for Dear ImGui plugins like implot and imnodes for advanced plotting and node-based editing, extending functionality out of the box.

Cons

CGO Limitations and Complexity

Relies on CGO, which has issues with varargs functions and callbacks, complicating development and limiting callback usage, as admitted in the README's naming convention and callback sections.

Platform-Specific Binaries

Pre-compiled libraries are only for specific OS/arch combinations, requiring manual compilation for unsupported systems, and there are known glibc compatibility issues on older Linux distros, as warned in the note.

Backend Import Conflicts

Importing multiple backends like GLFW and SDL2 simultaneously can cause linker crashes, limiting flexibility in backend selection, as highlighted in the important note under supported backends.

Frequently Asked Questions

Quick Stats

Stars530
Forks72
Contributors0
Open Issues21
Last commit1 day ago
CreatedSince 2022

Tags

#desktop-application#cgo#cimgui#imgui#go-bindings#dear-imgui#game-development#golang#gui#cross-platform#immediate-mode-gui#embedded-gui#graphical-interface

Built With

G
Go
S
SDL2
G
GLFW
C
CMake
c
cgo
E
Ebitengine
c
cimgui
L
Lua

Included in

Go169.1k
Auto-fetched 17 hours ago

Related Projects

fynefyne

Cross platform GUI toolkit in Go inspired by Material Design

Stars28,521
Forks1,539
Last commit1 day ago
webviewwebview

Tiny cross-platform webview library for C/C++. Uses WebKit (GTK/Cocoa) and Edge WebView2 (Windows).

Stars14,166
Forks1,081
Last commit4 months ago
qtqt

Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly

Stars10,804
Forks746
Last commit2 years ago
robotgorobotgo

RobotGo, Go Native cross-platform RPA, GUI automation, Auto test and Computer use @vcaesar

Stars10,751
Forks958
Last commit16 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub