Go bindings for raylib, a simple library for videogames programming.
raylib-go is a complete set of Go bindings for raylib, a C library designed for videogames programming and creative coding. It enables Go developers to build cross-platform games and multimedia applications with a straightforward API, providing full access to raylib's functionality including window management, graphics, audio, and input handling.
Go developers interested in creating videogames, multimedia applications, or engaging in creative coding projects across desktop, mobile, and web platforms.
Developers choose raylib-go for its seamless integration of raylib's C source code, eliminating external dependencies, and its support for multiple graphics backends and platforms including Windows, Linux, macOS, Android, and WebAssembly. The option to run without cgo on Windows offers additional flexibility.
Go bindings for raylib, a simple and easy-to-use library to enjoy videogames programming.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides full bindings to raylib's C library, including window management, graphics, audio, and input handling, as stated in the README's key features.
Supports Windows, Linux, macOS, Android, and WebAssembly with multiple graphics backends like OpenGL and SDL configurable via build tags.
Includes and compiles raylib's C source code with the bindings, eliminating external dependencies for seamless integration on most platforms.
Offers a purego mode on Windows using raylib.dll, allowing compilation without cgo for simplified deployment, as detailed in the requirements section.
The first build can take several minutes as it compiles the included C source code, which might slow down development iteration, as warned in the README.
Requires installing system dependencies like libgl1-mesa-dev on Linux or Xcode on macOS, adding complexity to the setup process across different OSes.
WebAssembly support is handled by a separate repository (Raylib-Go-Wasm), which may lead to compatibility issues or delayed updates compared to the core library.
Being a binding to a C library, it doesn't fully leverage Go's native concurrency model or standard libraries, potentially limiting integration with other Go tools.