GPUI Component: moderní Rust GUI komponenty pro cross-platform desktop aplikace
Publikováno: 30.10.2025


GPUI Component je open-source knihovna napsaná v jazyce Rust, která rozšiřuje framework GPUI o sadu více než 60 moderních UI komponent. Vznikla v rámci projektu Longbridge, který ji využívá pro vlastní aplikaci Longbridge Pro. Je licencována pod Apache 2.0 a dostupná na GitHubu.
Knihovna staví na deklarativním přístupu – komponenty jsou stateless a implementují rozhraní RenderOnce. UI se popisuje podobně jako v Reactu nebo v Yew (pro web). Vše je optimalizováno pro výkon a jednoduchost integrace s GPUI jádrem.
Základní návrhové principy:
- Stateless renderování: komponenty implementují
RenderOnce, čímž se eliminuje potřeba spravovat vnitřní stav. - Konzistence a jednoduchost: API se snaží zůstat jednoduché, srozumitelné a snadno rozšiřitelné.
- Cross-platform: všechny komponenty fungují na Windows, macOS i Linuxu.
Hlavní klíčové funkce
- Bohatost: Více než 60 cross-platform desktopových UI komponent.
- Nativní: Inspirováno ovládacími prvky macOS a Windows, kombinováno s designem shadcn/ui pro moderní vzhled.
- Snadné použití: Stateless komponenty
RenderOnce, jednoduché a uživatelsky přívětivé. - Přizpůsobitelné: Vestavěný systém
ThemeaThemeColor, podpora více motivů a konfigurací založených na proměnných. - Všestranné: Podpora velikostí
xs,sm,mdalg. - Flexibilní layout: Dock layout pro uspořádání panelů, změnu velikosti a volné (Tiles) layouty.
- Vysoký výkon: Virtualizované komponenty
TableaListpro plynulé vykreslování velkých datasetů. - Rendering obsahu: Nativní podpora Markdownu a jednoduchého HTML.
- Grafy: Vestavěné grafy pro vizualizaci dat.
- Editor: Vysoce výkonný kódový editor (podpora až 200 000 řádků) s LSP (diagnostika, doplňování, hover atd.).
- Zvýraznění syntaxe: Zvýraznění syntaxe pro editor a Markdown komponenty pomocí Tree-Sitter.
Ukázka použití
Základní aplikace s tlačítkem:
use gpui::*;
use gpui_component::{button::*, *};
pubstructHelloWorld;
impl Render for HelloWorld {
fnrender(&mutself, _: &mut Window, _: &mut Context<Self>) -> impl IntoElement {
div()
.v_flex()
.gap_2()
.size_full()
.items_center()
.justify_center()
.child("Hello, World!")
.child(
Button::new("ok")
.primary()
.label("Let's Go!")
.on_click(|_, _, _| println!("Clicked!")),
)
}
}
fnmain() {
let app = Application::new();
app.run(move |cx| {
// This must be called before using any GPUI Component features.
gpui_component::init(cx);
cx.spawn(asyncmove |cx| {
cx.open_window(WindowOptions::default(), |window, cx| {
let view = cx.new(|_| HelloWorld);
// This first level on the window, should be a Root.
cx.new(|cx| Root::new(view.into(), window, cx))
})?;
Ok::<_, anyhow::Error>(())
})
.detach();
});
}Integrace
Projekt je stále ve vývoji, takže se zatím přidává přímo z GitHubu.
gpui = "0.2.2"
gpui-component = "0.3.1"Pro build vyžaduje Rust 1.77+ a závisí na jádru GPUI. Podporuje integraci se souborem flake.nix pro jednotné prostředí a reprodukovatelné buildy.
Ukázková aplikace
První reálná aplikace postavená na gpui-component je Longbridge Pro – desktopový trading nástroj. Využívá multi-theme systém, panely a virtualizované tabulky.

Výhody
- Silný výkon díky Rustu a nativnímu renderingu.
- Konzistentní, moderní design bez potřeby webového enginu (bez Electronu).
- Dobře navržené API a srozumitelný systém témat.
- Vhodné pro aplikace typu IDE, analytické dashboardy nebo editory.
Nevýhody
- Projekt je stále aktivně vyvíjen, API se může měnit.
- Menší komunita než u zavedených GUI frameworků (např. egui, iced).
- Dokumentace je zatím stručná, většina příkladů v repozitáři.
Shrnutí
GPUI Component je ambiciózní knihovna, která ukazuje, že Rust GUI může být moderní, rychlé a vizuálně atraktivní. Pro vývojáře, kteří chtějí tvořit nativní multiplatformní desktopové aplikace bez Electronu, představuje jednu z nejkomplexnějších sad komponent v Rust ekosystému.
Pro více informací: github.com/longbridge/gpui-component