A pure Go GPU computing framework for graphics and compute operations with dual backends and zero CGO.
GoGPU is a pure Go GPU computing framework that provides a high-level API for graphics rendering and compute operations. It enables Go developers to leverage GPU acceleration for applications ranging from simple windowed graphics to complex compute shaders, with support for multiple graphics backends and platforms. The framework solves the problem of accessing GPU capabilities from Go without relying on CGO or complex native dependencies.
Go developers building graphical applications, games, simulations, or compute-intensive tools that require GPU acceleration across desktop platforms (Windows, Linux, macOS).
Developers choose GoGPU for its pure Go implementation with zero CGO requirements, dual backend flexibility (performance vs. simplicity), and comprehensive feature set including compute shaders, cross-platform windowing, and event-driven rendering. It provides a complete GPU ecosystem specifically designed for Go's simplicity and deployment model.
Pure Go Graphics Framework — GPU power, Go simplicity
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both a high-performance Rust backend (wgpu-native) and a zero-dependency pure Go backend, allowing trade-offs between performance and simplicity based on project needs.
Enables runtime selection of graphics APIs like Vulkan, DX12, Metal, GLES, or Software across Windows, Linux, and macOS, ensuring broad compatibility without recompilation.
Implements a three-state model (idle/animating/continuous) that minimizes CPU usage during inactivity, ideal for power-sensitive applications like UI tools.
SurfaceView allows direct GPU rendering without CPU readback, reducing latency and improving performance for high-frequency updates or compositing tasks.
Uses pure Go FFI for native windowing via Win32, X11/Wayland, and Cocoa, eliminating CGO hurdles and simplifying cross-platform deployment with HiDPI support.
The high-performance Rust backend requires external wgpu-native shared libraries, adding deployment overhead and potential platform-specific compatibility issues.
Key components like the UI toolkit are only planned, and the project is relatively new, leading to limited third-party integrations and community resources.
The pure Go backend, while dependency-free, may not match the performance of the Rust backend, especially for compute-heavy workloads, as admitted in the README's backend comparisons.
The README focuses on features over tutorials; comprehensive guides for complex tasks like compute shaders or multi-threading are sparse, relying on examples.