gpui-kit 0.6.0

GPUI Kit: one dependency for building desktop applications with GPUI, GPUI Base, GPUI Component and GPUI Shell.
Documentation

GPUI Kit

One dependency for building desktop applications with GPUI:

[dependencies]
gpui-kit = "0.6"

gpui-kit depends on the matching set of GPUI crates, so an application never lists GPUI itself. use gpui_kit::*; is GPUI, and each layer is reachable by name:

Path Crate Feature
gpui_kit::* gpui always
gpui_kit::platform gpui_platform always
gpui_kit::base gpui-base always
gpui_kit::component gpui-component component (on)
gpui_kit::assets gpui-kit-assets assets (on)

gpui_kit::application() opens the platform and gpui_kit::init() initializes the enabled layers:

use gpui_kit::component::button::*;
use gpui_kit::component::Root;
use gpui_kit::*;

struct Hello;

impl Render for Hello {
    fn render(&mut self, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
        div().child(Button::new("ok").primary().label("Let's Go!"))
    }
}

fn main() {
    gpui_kit::application().run(|cx| {
        gpui_kit::init(cx);
        cx.spawn(async move |cx| {
            cx.open_window(WindowOptions::default(), |window, cx| {
                let view = cx.new(|_| Hello);
                cx.new(|cx| Root::new(view, window, cx))
            })
            .expect("failed to open window");
        })
        .detach();
    });
}

The gpui-component features (inspector, decimal, tree-sitter, tree-sitter-languages, and each tree-sitter-<language>) are available on gpui-kit under the same names. test-support turns on GPUI's test harness for #[gpui_kit::test], TestAppContext and VisualTestContext; enable it under [dev-dependencies]. See https://gpui-kit.com for the guides.