Gio is a library for writing cross-platform immediate mode GUI-s in Go. Gio supports all the major platforms: Linux, macOS, Windows, Android, iOS, FreeBSD, OpenBSD and WebAssembly.
For a quick demonstration take a look at the WebAssembly demo below. This requires a browser that supports WebAssembly.
The source for the Kitchen project.
Gio is designed to work with very few dependencies. It depends only on the platform libraries for window management, input and GPU drawing.
To install the necessary dependencies, take a look at:
Once you have everything installed head over to Learn, which contains links to get you started with Gio.
- godcr, a cross-platform desktop wallet for the Decred cryptocurrency.
- sprig, a client for the Arbor chat system.
- Tailscale, a Tailscale Android client.
- Protonet, a peer-to-peer chat application. GitHub Repo
- Wormhole William, an end-to-end encrypted file transfer application using the Magic Wormhole protocol. GitHub repository.
- Sointu, a modular software synthesizer to easily produce music for 4k intros.
- Photon, a fast RSS reader as light as a photon.
Gio helps Go developers to build efficient, fluid, and portable GUIs across all major platforms. It combines bleeding-edge 2D graphics technology with the flexibility of the immediate mode graphics paradigm to create a compelling and consistent foundation for application development.
Gio includes an efficient vector renderer based on the Pathfinder project implemented on OpenGL ES and Direct3D 11, and is migrating towards an even more efficient compute-shader-based renderer built atop piet-gpu. Text and other shapes are rendered using only their outlines without baking them into texture images, to support efficient animations, transformed drawing and pixel resolution independence.
Development of Gio is funded by sponsorships. If you find Gio useful, please consider sponsoring the project on OpenCollective or one or more of its developers directly.