GPUI

A fast, productive UI framework for Rust from the creators ofย Zed.

Hello, World ๐ŸŒŽ

use gpui::*;
 
struct HelloWorld {
    text: SharedString,
}
 
impl Render for HelloWorld {
    fn render(&mut self, _cx: &mut ViewContext<Self>) -> impl IntoElement {
        div()
            .flex()
            .bg(rgb(0x2e7d32))
            .size_full()
            .justify_center()
            .items_center()
            .text_xl()
            .text_color(rgb(0xffffff))
            .child(format!("Hello, {}!", &self.text))
    }
}
 
fn main() {
    App::new().run(|cx: &mut AppContext| {
        cx.open_window(WindowOptions::default(), |cx| {
            cx.new_view(|_cx| HelloWorld {
                text: "World".into(),
            })
        });
    });
}

Today, it's Zed's UI framework. Tomorrow, it's yours! We'd love your help making that happen.

GPUI is made possible by

as-ciimaxbrunsfeldmikayla-makinathansoboiamnbutlerSomeoneToIgnoreConradIrwinmaxdeviantJosephTLyonsForLoveOfCatsosiewiczKethkuKCaverlyslightknackmrnuggetsonufrienkoPixelJanitorQuinnWiltonhovsateraexvirfdionisi
How to contribute โ†’

Contributing to GPUI

GPUI is an open source project. We welcome contributions, but for the near future GPUI is tied to Zed, so contributions will need to be made there and kept in sync with it.