GPUI Box is an independent crates.io distribution of the GPUI framework and a product-neutral component system for native and browser-hosted Rust interfaces. The project lives at https://github.com/fran0220/gpui-box. It is derived from GPUI source imported from Zed, but it is not an official Zed project and Zed is not a Cargo dependency.
The umbrella workspace provides one framework, one token authority, truthful async states, caller-owned data and actions, stable semantic automation, and deterministic scene fixtures. It contains no OriginGame/Forge domain logic, credentials, transports, accounts, or product models.
Catalog endpoint: https://gpui-box.origingame.dev ·
Remote Developer MCP: https://gpui-box.origingame.dev/mcp ·
Checkout MCP: tools/mcp/run.sh
All publishable packages are versioned as the 0.2.x cohort. Cargo package
names and Rust crate names intentionally differ:
| Cargo package(s) | Rust import | Purpose | License |
|---|---|---|---|
gpui-box |
gpui |
Core framework and the authoritative GPUI type universe | Apache-2.0 |
gpui-box-platform |
gpui_platform |
Platform application construction | Apache-2.0 |
gpui-box-macos, gpui-box-linux, gpui-box-windows, gpui-box-web |
platform-specific | Platform implementations | Apache-2.0 |
gpui-box-wgpu |
gpui_wgpu |
WGPU renderer and offscreen support | Apache-2.0 |
gpui-box-collections, -http-client, -macros, -media, -refineable, -refineable-derive, -scheduler, -shared-string, -sum-tree, -util, -util-macros |
manifest-defined | Framework support crates | Apache-2.0 |
gpui-box-kit |
gpui_kit |
Components, scenes, motion, strings, themes, and truthful state | MIT |
gpui-box-kit-tokens, -theme, -assets, -semantics, -testkit |
gpui_kit_* |
Kit package family | MIT (bundled assets retain their licenses) |
gpui-box-mcp |
binary | Stateless remote and checkout-backed Developer MCP | MIT |
Gallery, browser-gallery, headless, perf, and xtask packages are workspace
tools and are not published. package-authority.toml is the exact authority
for package identity and publishability.
Version 0.2.0 is a GitHub source release, not a crates.io publication.
Use the immutable v0.2.0 tag below, or replace every tag with the same
full rev from the GitHub release. Commit the application's Cargo.lock
and build with --locked; do not track a branch. Cargo aliases retain the
conventional gpui and gpui_kit imports:
[dependencies]
gpui = { package = "gpui-box", git = "https://github.com/fran0220/gpui-box", tag = "v0.2.0" }
gpui_platform = { package = "gpui-box-platform", git = "https://github.com/fran0220/gpui-box", tag = "v0.2.0" }
gpui_kit = { package = "gpui-box-kit", git = "https://github.com/fran0220/gpui-box", tag = "v0.2.0" }
[dev-dependencies]
gpui_kit_testkit = { package = "gpui-box-kit-testkit", git = "https://github.com/fran0220/gpui-box", tag = "v0.2.0", features = ["test-support"] }
[patch.crates-io]
block = { git = "https://github.com/fran0220/gpui-box", tag = "v0.2.0" }Keep the block patch in the application's workspace root. Cargo does not
inherit dependency workspaces' patches; this is the receipted compatibility
fix for upstream block 0.1.6, not a second GPUI implementation. The last
crates.io cohort remains 0.1.1; it does not contain the 0.2.0 changes.
Do not add another GPUI implementation to the same application. Every
framework and kit crate in this cohort resolves through gpui-box, producing a
single package/type/global universe. Consumers neither pin Zed nor add a Zed
Git dependency.
The core defaults enable font-kit, Wayland, X11, and Windows manifest support;
turn defaults off and select wayland, x11, windows-manifest,
screen-capture, inspector, or other core features when a host needs a
narrower build. gpui-box-kit's fixtures feature is only the deterministic
calendar used by scenes and tests; keep it off in products. Its optional
dotlottie feature adds the bounded pure-Rust .lottie raster adapter.
Semantic cinematic recipes, typed playback requests, deterministic posters,
and particle fallbacks remain available without that feature.
Requires Rust 1.97 and edition 2024.
use gpui_kit::prelude::*;
let app = gpui_platform::application().with_assets(gpui_kit::assets::Assets);
app.run(|cx| gpui_kit::install(cx));Install the asset source while constructing the application, then call
gpui_kit::install before opening a window. Components hold only transient
visual state. Values, selections, persistence, transports, and refusals belong
to the caller; disabled controls install no action handler. See
docs/host-view-boundary.md and
docs/truthful-ui.md.
Tokens in crates/gpui-kit-tokens/tokens/*.json are authoritative. The kit
re-exports its common assets, theme, token, and semantics APIs. Public Rust API,
token keys, and stable semantic ids are all compatibility surfaces.
cargo run -p gpui-box-gallery
cargo run -p xtask -- scenes render
cargo run -p xtask -- gate # complete non-visual proof, incl. wasm32 check
cargo run -p xtask -- gate full # gate + rustdoc + this renderer's visual catalog
cargo run -p xtask -- headless check
cargo run -p xtask -- web check
cargo run -p xtask -- web build
cargo run -p xtask -- web smoke
cargo run -p xtask -- web visual check button input dialog node-graph
cargo run -p xtask -- web gate button input dialog node-graph
cargo run -p xtask -- site check
cargo run -p xtask -- site generate
cargo run -p xtask -- package plan
cargo run -p xtask -- package checkscenes render writes real-window review images; it is not a baseline gate.
Run gate full instead of, not after, gate when a change can affect rendered
output. The standalone web commands remain useful while iterating; web gate
builds and prepares Chromium once before checking the gallery, static-site
embeds, full compose route, and scoped visual proof. site generate bundles
that browser build with the static catalog rather than replacing searchable
documentation with a canvas.
Headless baselines cover Linux, macOS, and Windows. gate full on Linux is
the gate every commit runs; it compiles every feature natively and for wasm32
and compares the llvmpipe catalog. macOS and Windows native tests and
headless catalogs run on demand through the dispatch-only Platforms
workflow. web smoke drives a real Chromium session when the browser gallery
changes. Browser validation is single-threaded and does not claim
screen-reader announcements. Exact support and limitations are in
docs/compatibility.md.
cargo run -p xtask -- performance check enforces deterministic structural
budgets for the 10,000-item virtualized surfaces and writes a machine-readable
report. See docs/performance-testing.md.
Framework source was filtered into this repository from
fran0220/zed@0b9c8dc932b65cba2dc87464148984e93f60ae18, against official Zed
baseline a6a23c7b80a5cefa0487b7856335be89ace7e483. That import is frozen:
GPUI Box now develops its framework, platforms, media, and Kit directly in this
repository. scripts/sync-zed only verifies the offline historical receipt;
Zed is neither a linked package nor an ongoing development source. See
PROVENANCE.md.
The framework cohort is Apache-2.0. GPUI Box Kit and MCP are MIT. Bundled Geist
and Noto fonts are OFL 1.1; Phosphor Icons are MIT; other derived assets
retain their stated terms. See THIRD_PARTY_NOTICES.
The former https://gpui-kit.origingame.dev endpoint remains a compatibility
alias backed by the same immutable BWG release; it is not a second deployment.
Deployment details are in docs/deploying.md, and release
operations are in docs/releasing.md.