README

Gio - https://gioui.org

Immediate mode GUI programs in Go for Android, iOS, macOS, Linux, FreeBSD, OpenBSD, Windows, and WebAssembly (experimental).

Installation, examples, documentation

Go to gioui.org.

builds.sr.ht status

Issues

File bugs and TODOs through the issue tracker or send an email to ~eliasnaur/gio@todo.sr.ht. For general discussion, use the mailing list: ~eliasnaur/gio@lists.sr.ht.

Contributing

Post discussion to the mailing list and patches to gio-patches. No Sourcehut account is required and you can post without being subscribed.

See the contribution guide for more details.

An official GitHub mirror is available.

Expand ▾ Collapse ▴

Directories

Path Synopsis
app
Package app provides a platform-independent interface to operating system functionality for running graphical user interfaces.
Package app provides a platform-independent interface to operating system functionality for running graphical user interfaces.
permission
Package permission includes sub-packages that should be imported by a Gio program or by one of its dependencies to indicate that specific operating-system permissions are required.
Package permission includes sub-packages that should be imported by a Gio program or by one of its dependencies to indicate that specific operating-system permissions are required.
permission/bluetooth
Package bluetooth implements permissions to access Bluetooth and Bluetooth Low Energy hardware, including the ability to discover and pair devices.
Package bluetooth implements permissions to access Bluetooth and Bluetooth Low Energy hardware, including the ability to discover and pair devices.
permission/camera
Package camera implements permissions to access camera hardware.
Package camera implements permissions to access camera hardware.
permission/networkstate
Package networkstate implements permissions to access network connectivity information.
Package networkstate implements permissions to access network connectivity information.
permission/storage
Package storage implements read and write storage permissions on mobile devices.
Package storage implements read and write storage permissions on mobile devices.
apps module
cmd module
example module
Package f32 is a float32 implementation of package image's Point and Rectangle.
Package f32 is a float32 implementation of package image's Point and Rectangle.
font
gofont
Package gofont exports the Go fonts as a text.Collection.
Package gofont exports the Go fonts as a text.Collection.
opentype
Package opentype implements text layout and shaping for OpenType files.
Package opentype implements text layout and shaping for OpenType files.
Package gesture implements common pointer gestures.
Package gesture implements common pointer gestures.
gpu
Package gpu implements the rendering of Gio drawing operations.
Package gpu implements the rendering of Gio drawing operations.
headless
Package headless implements headless windows for rendering an operation list to an image.
Package headless implements headless windows for rendering an operation list to an image.
io
event
Package event contains the types for event handling.
Package event contains the types for event handling.
key
Package key implements key and text events and operations.
Package key implements key and text events and operations.
pointer
Package pointer implements pointer events and operations.
Package pointer implements pointer events and operations.
profile
Package profiles provides access to rendering profiles.
Package profiles provides access to rendering profiles.
router
Package router implements Router, a event.Queue implementation that that disambiguates and routes events to handlers declared in operation lists.
Package router implements Router, a event.Queue implementation that that disambiguates and routes events to handlers declared in operation lists.
system
Package system contains events usually handled at the top-level program level.
Package system contains events usually handled at the top-level program level.
Package layout implements layouts common to GUI programs.
Package layout implements layouts common to GUI programs.
op
Package op implements operations for updating a user interface.
Package op implements operations for updating a user interface.
clip
Package clip provides operations for clipping paint operations.
Package clip provides operations for clipping paint operations.
paint
Package paint provides drawing operations for 2D graphics.
Package paint provides drawing operations for 2D graphics.
Package unit implements device independent units and values.
Package unit implements device independent units and values.
website module
Package widget implements state tracking and event handling of common user interface controls.
Package widget implements state tracking and event handling of common user interface controls.
material
Package material implements the Material design.
Package material implements the Material design.
x module
haptic Module
notify Module
internal
byteslice
Package byteslice provides byte slice views of other Go values such as slices and structs.
Package byteslice provides byte slice views of other Go values such as slices and structs.
cocoainit
Package cocoainit initializes support for multithreaded programs in Cocoa.
Package cocoainit initializes support for multithreaded programs in Cocoa.
egl
gl
ops
scene
Package scene encodes and decodes graphics commands in the format used by the compute renderer.
Package scene encodes and decodes graphics commands in the format used by the compute renderer.
stroke
Package stroke implements conversion of strokes to filled outlines.
Package stroke implements conversion of strokes to filled outlines.