gooey  by duanebester

GPU-accelerated UI framework for Zig development

Created 10 months ago
647 stars

Top 51.7% on SourcePulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Gooey is a Zig-native UI framework enabling fast, GPU-rendered applications across macOS, Linux (Wayland/Vulkan), and WebAssembly. It targets developers seeking a modern, declarative approach to building cross-platform graphical interfaces with zero external Zig dependencies, leveraging native GPU acceleration for performance.

How It Works

This framework employs a hybrid immediate/retained mode paradigm, separating UI layout (ui.* primitives, flexbox) from state management (Cx context, pure state pattern). It renders directly to Metal on macOS and Vulkan on Linux, with WebAssembly/WebGPU support pending upstream Zig compiler fixes. Key features include a component-based architecture, automatic re-rendering on state changes, and a built-in animation system.

Quick Start & Requirements

  • Primary Install/Run: zig build run (showcase demo). Numerous example commands like zig build run-counter.
  • Prerequisites: Zig 0.16.0+.
    • macOS: macOS 12.0+
    • Linux: Wayland compositor, Vulkan drivers, FreeType, HarfBuzz, Fontconfig, libpng, D-Bus.
  • Dependencies: Zero external Zig packages; links against system frameworks.
  • Links: None provided beyond example commands.

Highlighted Details

  • GPU Rendering: Native Metal (macOS) and Vulkan (Linux) backends.
  • Declarative UI: Component-based layout using ui.* primitives and a flexbox-style system.
  • Pure State Pattern: Testable state logic with automatic UI updates.
  • Cross-Platform: Targets macOS, Linux (Wayland/Vulkan), and WebAssembly (WASM support pending upstream Zig fixes).
  • Zero Dependencies: Builds against system libraries only, avoiding external Zig package management.

Maintenance & Community

  • Community: Discord server available.
  • Development Status: Described as "Early Development" with an "evolving API."

Licensing & Compatibility

  • License: Not specified in the README.
  • Compatibility: Commercial use compatibility is undetermined due to the missing license.

Limitations & Caveats

The API is actively evolving due to its early development stage. WebAssembly/WebGPU support is currently blocked by upstream Zig compiler issues. Linux builds require specific Wayland and Vulkan development libraries.

Health Check
Last Commit

21 hours ago

Responsiveness

Inactive

Pull Requests (30d)
9
Issues (30d)
1
Star History
0 stars in the last 30 days

Explore Similar Projects

Starred by Georgios Konstantopoulos Georgios Konstantopoulos(CTO, General Partner at Paradigm), Jared Palmer Jared Palmer(SVP at GitHub; Founder of Turborepo; Author of Formik, TSDX), and
2 more.

Valdi by Snapchat

0.0%
16k
Build native cross-platform UIs with TypeScript
Created 11 months ago
Updated 2 days ago
Feedback? Help us improve.