Komponen GPUI Rust lintas platform
(github.com/longbridge)- Library komponen UI untuk membangun aplikasi desktop lintas platform dengan memanfaatkan framework GPUI berbasis Rust
- Menyediakan lebih dari 60 komponen UI bergaya native, menggabungkan nuansa desain macOS·Windows dengan estetika modern shadcn/ui
- Dilengkapi fitur kaya seperti tabel tervirtualisasi, editor kode berperforma tinggi, rendering Markdown/HTML, dan visualisasi chart
- Dirancang dengan fokus pada ekstensibilitas dan kustomisasi seperti sistem tema, multibahasa (i18n), dan layout docking
- Di ekosistem Rust, memiliki nilai pembeda dibanding Iced, egui, Qt, dan lainnya lewat gaya UI modern serta performa pemrosesan data skala besar
Gambaran proyek
- gpui-component adalah kumpulan komponen UI desktop lintas platform yang ditulis dengan Rust dan berjalan di atas render engine GPUI
- Tujuannya adalah memungkinkan pembuatan “fantastic desktop applications” dengan cepat dan konsisten
- Situs resminya adalah longbridge.github.io/gpui-component
- Lisensi Apache-2.0
Fitur utama
- Susunan komponen yang kaya: mencakup lebih dari 60 elemen UI, termasuk tombol, daftar, tabel, chart, editor, dan berbagai komponen lain
- Desain bernuansa native: menghadirkan antarmuka modern yang terinspirasi dari kontrol bawaan macOS dan Windows serta dipadukan dengan gaya shadcn/ui
- Kemudahan penggunaan yang ringkas: struktur komponen RenderOnce tanpa state memungkinkan penulisan kode yang sederhana dan intuitif
- Sistem tema dan warna: mendukung banyak tema serta konfigurasi berbasis variabel melalui Theme dan ThemeColor
- Layout fleksibel: dengan Dock layout, panel dapat ditata, diubah ukurannya, dan disusun bebas dalam bentuk tiling
- Rendering berperforma tinggi: Virtualized Table/List menampilkan data besar dengan mulus
- Rendering konten: mendukung Markdown dan HTML sederhana secara native
- Fitur chart: memungkinkan visualisasi data dengan chart bawaan
- Editor kode: menyertakan editor kode berperforma tinggi berbasis LSP yang mendukung hingga 200 ribu baris
- Mendukung fitur seperti diagnostic, autocomplete, hover, dan lainnya
- Syntax highlighting: menggunakan Tree Sitter untuk menyediakan penyorotan sintaks baik di editor maupun Markdown
Tech stack dan statistik
- Komposisi bahasa: Rust 98.2%, Tree-sitter Query 0.8%, HTML 0.2%, Shell 0.2%, Python 0.1%, C 0.1%
- Metrik repositori: 5.4k stars, 223 forks, lebih dari 45 kontributor
- Rilis terbaru: v0.3.1 (27 Oktober 2025)
Makna ringkas
- gpui-component dinilai sebagai framework UI desktop baru di ekosistem Rust yang menggabungkan UI/UX modern dan rendering berperforma tinggi
- Melengkapi keterbatasan framework GUI Rust yang sudah ada, serta menawarkan fitur yang ramah kebutuhan praktis seperti pemrosesan data skala besar, theming, dan integrasi Markdown
- Ke depan, proyek ini mendapat perhatian sebagai calon lapisan UI terstandar untuk pengembangan aplikasi lintas platform berbasis Rust
1 komentar
Opini Hacker News
Di ekosistem UI Rust, ini tampak seperti koleksi komponen yang paling matang yang pernah saya lihat sejauh ini
Memang belum banyak contoh penggunaan, tetapi dokumentasinya makin rapi
Contoh lain yang tingkat kematangannya mirip adalah fyrox-ui. Namun, hampir tidak dipakai di luar engine fyrox
UI Rust makin matang, tetapi framework populer seperti iced, egui, dioxus, dan slint masih tampak kurang matang dari sisi kelengkapan komponen
Sebagai pembaruan, proyek ini menunjukkan kemajuan besar di ekosistem UI Rust.
Aplikasi galeri widget untuk melihat semua komponennya bisa dijalankan di sini — cukup dengan
cargo run --releaseBahkan contoh paling sederhana pun punya lebih dari 1000 dependensi. Ia bergantung pada toolkit seperti GTK, GDK, dan pango. Struktur yang juga bergantung pada toolkit lain terasa agak aneh
Agak pahit bahwa banyak teknologi fondasi open source dibuat oleh perusahaan trading dan kripto. Meski begitu, tetap positif bahwa mereka menyumbang sesuatu bagi masyarakat
Saya penasaran apakah toolkit UI yang “modern” belakangan ini tidak punya editor UI visual
Qt dulu memungkinkan pembuatan UI hanya dengan drag-and-drop lewat alat seperti QtCreator atau QtDesigner
Selain itu, beberapa item di tabel perbandingan terkait Qt juga salah — misalnya ukuran biner minimum atau penjelasan tentang QSyntaxHighlighter
Sayangnya ini adalah sebuah framework. Artinya, ia harus memiliki event loop sendiri
Di lingkungan yang sudah punya loop lain, integrasinya jadi sulit. Sebaliknya, egui hanyalah struktur berbentuk library yang dipanggil setiap frame
Saya penasaran apakah aksesibilitas screen reader untuk pengguna tunanetra berfungsi dengan baik
Saya penasaran apakah yang dimaksud “native” itu sekadar bukan web, atau benar-benar memakai widget bawaan OS. Ekosistem Java juga dulu banyak bergulat dengan perbedaan ini
Saya penasaran apakah framework ini sudah mengimplementasikan aksesibilitas (a11y). UI Rust sering kali tampak cantik, tetapi begitu ada kebutuhan aksesibilitas, semuanya harus ditulis ulang total
Fitur daftar dan tabel tervirtualisasi benar-benar sangat bagus. Banyak framework UI memaksa kita mengimplementasikan ini sendiri, yang terasa merepotkan
Rust punya banyak toolkit GUI, tetapi kekurangan koleksi komponen yang bisa digunakan ulang
Koleksi ini tampak berguna, tetapi sebagian besar mirip daftar komponen framework web. Unsur yang benar-benar khas native tampaknya hanya webview. Hal seperti dialog buka file tetap harus memakai library eksternal seperti rfd, sehingga konsistensi gaya jadi pecah