gooey  by duanebester

GPU-accelerated UI framework for Zig development

Created 6 months ago
484 stars

Top 62.9% 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

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
11
Issues (30d)
1
Star History
397 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.1%
16k
Build native cross-platform UIs with TypeScript
Created 7 months ago
Updated 17 hours ago
Feedback? Help us improve.