Auto-generated Go wrapper for Dear ImGui via cimgui, providing multiple backend implementations for GUI applications.
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.
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.
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.
Auto generated Go wrapper for Dear ImGui via cimgui
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
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.
Includes ready-to-use backends for GLFW, SDL2, Ebitengine, and DRM/EGL, abstracting platform-specific rendering and input handling, with examples provided for each.
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.
Provides bindings for Dear ImGui plugins like implot and imnodes for advanced plotting and node-based editing, extending functionality out of the box.
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.
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.
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.