gpui-unofficial 1.26.2

Zed's GPU-accelerated UI framework
Documentation

gpui-unofficial

Zed's GPU-accelerated UI framework

Part of gpui-archipelago (aka GPUI-lago — "jee pyu ay la go"): unofficial, automated builds of Zed's GPUI crates, published to crates.io.

This package is the published build of gpui, generated from zed v1.26.2 (c4273271092b0287f7d181f616bd5171e0a2f70c) at version 1.26.2.

Install

cargo add gpui-unofficial

The main framework crate. It pulls in the platform facade and the host backend.

Usage

The package is named gpui-unofficial; its library target is gpui, so source keeps use gpui::*. Start an application through the platform facade. The platform package is gpui-platform-gpui-unofficial; alias it as gpui_platform so the upstream code shape keeps working:

[dependencies]
gpui-unofficial = "1.26.2"
gpui_platform = { package = "gpui-platform-gpui-unofficial", version = "1.26.2" }
use gpui::*;

struct Hello;

impl Render for Hello {
    fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
        div().child("Hello, GPUI!")
    }
}

fn main() {
    gpui_platform::application().run(|cx: &mut App| {
        cx.open_window(WindowOptions::default(), |_, cx| cx.new(|_| Hello))
            .unwrap();
    });
}

The host backend is selected through gpui_platform; gpui-unofficial already enables the platform features it needs.

Versioning

Versions mirror Zed's release tags: zed v1.26.2 publishes as 1.26.2. Because the version is taken verbatim from Zed's semver, an already-published version cannot be replaced; a fix has to wait for the next Zed release.

Release notes and API changes

The archipelago

Every fork is an island. There's no mainland and no one's building one, so the islands have to find each other. Here they can.

Ideally, Zed would have published GPUI as a stable, versioned crate, but that didn't happen. Various people forked it instead, and each fork ended up solving a different part of the problem:

  • gpui-unofficial — publishes up-to-date crates on crates.io, which covers distribution. Currently needs a maintainer.
  • gpui-kit — Longbridge's shadow distribution: republishes upstream Zed crates to crates.io as gpui-pre under its own namespace, fronted by a gpui-kit facade over gpui-base, gpui-component, and gpui-shell — Jason Lee's answer to 315 days without an official release.
  • gpui-ce — a community fork working to accelerate testing of upstream features and maintain a faster-moving community version, publishing crates for standalone desktop apps.
  • Kael — forked from GPUI direct; selectively tracks upstream while building out general-purpose features (gradients, webviews, form controls, component library).
  • WGPUI — GPUI ported to a single cross-platform backend (wgpu + winit) instead of per-platform code — leaner, and features land across Windows, macOS, Linux, and WebAssembly in one code path. WgpuSurface lets you embed raw wgpu render passes (3D, game engines, custom shaders, anything) directly in your UI tree, making WGPUI suitable as a shell for 3D applications and mixed-mode interfaces.

Provenance and licence

Derived from Zed's GPUI and published as gpui-unofficial under Apache-2.0. This is an unofficial project, not affiliated with or maintained by Zed Industries. For issues with the upstream crate, see the Zed repository.

source:          https://github.com/gpui-archipelago/gpui-unofficial
upstream:        https://github.com/zed-industries/zed
upstream tag:    v1.26.2
upstream commit: c4273271092b0287f7d181f616bd5171e0a2f70c
crate:           gpui-unofficial
original:        gpui
version:         1.26.2