Přejít k navigační liště

Zdroják » Různé » GPUI Component: moderní Rust GUI komponenty pro cross-platform desktop aplikace

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

Články Různé

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.

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::*, *};

pub struct HelloWorld;
impl Render for HelloWorld {
    fn render(&mut self, _: &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!")),
            )
    }
}

fn main() {
    let app = Application::new();

    app.run(move |cx| {
        // This must be called before using any GPUI Component features.
        gpui_component::init(cx);

        cx.spawn(async move |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();
    });
}Code language: Rust (rust)

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"Code language: Rust (rust)

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

Komentáře

Odebírat
Upozornit na
guest
0 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře

Austrálie vs. sociální sítě: ochrana dětí nebo absurdní regulace?

Různé
Komentáře: 1
Austrálie chystá razantní krok – od prosince 2025 budou děti mladší 16 let muset opustit sociální sítě. Ministryně komunikací Anika Wells ujistila, že vláda se nenechá zastrašit technologickými giganty. Zákon má chránit mladé uživatele před negativními dopady online světa, ale kritici varují, že může vést spíš k obcházení pravidel než k reálné ochraně.

Tor přechází na nový šifrovací algoritmus CGO

Různé
Komentáře: 0
Tor Project představil nový šifrovací algoritmus Counter Galois Onion (CGO), který nahrazuje zastaralý systém tor1. CGO přináší výrazně lepší ochranu proti manipulaci a sledování, zajišťuje forward secrecy a silnou autentizaci přenášených dat, přičemž zachovává vysokou výkonnost a nízkou režii provozu.

Nové Visual Studio 2026 a .NET 10

Různé
Komentáře: 0
Visual Studio 2026 a .NET 10 přinášejí moderní vývojové prostředí a výkonný framework, který výrazně zrychluje práci vývojářů, zlepšuje produktivitu a podporuje nejnovější technologie. V článku se podíváme na hlavní novinky, včetně AI asistence, moderního UI, optimalizovaného runtime a jazykových vylepšení v C# 14, a ukážeme si, na co si dát pozor při přechodu na nové verze.