GPUI Component: moderní Rust GUI komponenty pro cross-platform desktop aplikace

Publikováno: 30.10.2025

GPUI Component je open-source Rust knihovna rozšiřující framework GPUI o více než 60 moderních, nativních a multiplatformních UI komponent. Staví na deklarativním přístupu, stateless renderování a jednoduchém API inspirovaném Reactem či Yew. Díky optimalizovanému výkonu, podpoře témat a flexibilním layoutům umožňuje rychlý vývoj desktopových aplikací, jako je například trading nástroj Longbridge Pro. Knihovna je licencována pod Apache 2.0 a dostupná na GitHubu.

Celý článek

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 Theme a ThemeColor, podpora více motivů a konfigurací založených na proměnných.
  • Všestranné: Podpora velikostí xs, sm, md a lg.
  • Flexibilní layout: Dock layout pro uspořádání panelů, změnu velikosti a volné (Tiles) layouty.
  • Vysoký výkon: Virtualizované komponenty Table a List pro 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

Nahoru
Tento web používá k poskytování služeb a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tímto souhlasíte. Další informace