- Rust tabanlı GPUI framework ile çapraz platform masaüstü uygulamaları geliştirmeye yönelik bir UI bileşen kütüphanesi
- 60'tan fazla yerel stil UI bileşeni sunuyor; macOS ve Windows tasarım anlayışını shadcn/ui'nin modern estetiğiyle birleştiriyor
- Sanal tablo, yüksek performanslı kod editörü, Markdown/HTML render etme, grafik görselleştirme gibi zengin özellikleri yerleşik olarak içeriyor
- Tema sistemi, çoklu dil desteği (i18n), dock düzeni gibi genişletilebilirlik ve özelleştirmeye odaklanan bir tasarıma sahip
- Rust ekosisteminde Iced, egui, Qt gibi seçeneklerle karşılaştırıldığında modern UI stili ve büyük ölçekli veri işleme performansıyla ayrışıyor
Proje genel bakışı
- gpui-component, Rust ile yazılmış bir çapraz platform masaüstü UI bileşen koleksiyonu ve GPUI render motoru üzerinde çalışıyor
- Apache-2.0 lisansı
Başlıca özellikler
- Zengin bileşen yapısı: 60'tan fazla UI öğesi içeriyor; buton, liste, tablo, grafik, editör gibi çeşitli bileşenler sunuyor
- Yerel hissiyat veren tasarım: macOS ve Windows'un varsayılan kontrollerinden ilham alıp shadcn/ui stilini birleştirerek modern bir arayüz sunuyor
- Sade kullanım: Durumsuz RenderOnce bileşen yapısıyla basit ve sezgisel kod yazımını mümkün kılıyor
- Tema ve renk sistemi: Theme ve ThemeColor üzerinden çoklu tema ve değişken tabanlı yapılandırmayı destekliyor
- Esnek düzen: Dock layout ile panel yerleşimi, yeniden boyutlandırma ve serbest döşemeli kurulum yapılabiliyor
- Yüksek performanslı render: Virtualized Table/List ile büyük veri kümeleri de akıcı biçimde gösterilebiliyor
- İçerik render etme: Markdown ve basit HTML için yerel destek sunuyor
- Grafik özellikleri: Yerleşik grafiklerle veri görselleştirmesi yapılabiliyor
- Kod editörü: 200 bin satıra kadar destekleyen LSP tabanlı yüksek performanslı kod editörü içeriyor
- Tanılama, otomatik tamamlama, hover gibi özellikleri destekliyor
- Sözdizimi vurgulama: Tree Sitter ile hem editörde hem de Markdown içinde sözdizimi vurgulama sağlıyor
Teknoloji yığını ve istatistikler
- Dil dağılımı: Rust %98,2, Tree-sitter Query %0,8, HTML %0,2, Shell %0,2, Python %0,1, C %0,1
- Depo metrikleri: 5.4k yıldız, 223 fork, 45'ten fazla katkıcı
- En güncel sürüm: v0.3.1 (27 Ekim 2025)
Kısa değerlendirme
- gpui-component, Rust ekosisteminde modern UI/UX ile yüksek performanslı render'ı birleştiren yeni bir masaüstü UI framework'ü olarak değerlendiriliyor
- Mevcut Rust GUI framework'lerinin sınırlamalarını tamamlayarak büyük veri işleme, tema desteği, Markdown entegrasyonu gibi pratik geliştirme odaklı özellikler sunuyor
- Gelecekte Rust tabanlı çapraz platform uygulama geliştirmenin standartlaşmış UI katmanı adaylarından biri olarak öne çıkıyor
1 yorum
Hacker News görüşü
Rust UI ekosisteminde bunun şimdiye kadar gördüğüm en olgun bileşen koleksiyonu gibi göründüğünü düşünüyorum
Henüz neredeyse hiç kullanım örneği yok, ama dokümantasyon giderek daha iyi toparlanıyor
Benzer derecede olgun başka bir örnek olarak fyrox-ui var. Ancak fyrox motorunun dışında neredeyse hiç kullanılmıyor
Rust UI giderek olgunlaşıyor, ancak iced, egui, dioxus, slint gibi popüler framework'ler bileşen olgunluğu açısından hâlâ yetersiz görünüyor
Güncellemek gerekirse, bu proje Rust UI ekosisteminde büyük bir ilerleme gösteriyor.
Tüm bileşenleri görebileceğiniz widget galeri uygulamasını buradan çalıştırabilirsiniz — doğrudan
cargo run --releaseile mümkünEn basit örnek bile 1000'den fazla bağımlılığa sahip. GTK, GDK, pango gibi toolkit'lere bağımlı. Başka toolkit'lere de bağımlı olan bir yapı biraz garip geliyor
Açık kaynağın birçok temel teknolojisinin trading/kripto şirketleri tarafından geliştiriliyor olması buruk hissettiriyor. Yine de topluma bir şeyler kazandırmaları olumlu
Bugünün “modern” UI toolkit'lerinde görsel UI editörü yok mu diye merak ediyorum
Qt'de QtCreator veya QtDesigner gibi araçlarla sadece sürükle-bırak yaparak UI oluşturabiliyordunuz
Ayrıca, Qt ile ilgili karşılaştırma tablosundaki bazı maddeler yanlış — örneğin minimum binary boyutu veya QSyntaxHighlighter açıklaması gibi
Ne yazık ki bu bir framework. Yani kendi event loop'una sahip olmak zorunda
Zaten başka bir loop'un olduğu ortamlarda entegrasyon zor. Buna karşılık egui, her frame'de çağrılan basit bir kütüphane tipi yapı
Görme engelliler için screen reader erişilebilirliğinin iyi çalışıp çalışmadığını merak ediyorum
Buradaki “yerel/native” ifadesinin web olmadığı anlamına mı geldiğini, yoksa işletim sisteminin varsayılan widget'larını kullanıp kullanmadığını merak ediyorum. Java dünyası da bu ayrımı çok yaşadı
Bu framework'ün erişilebilirlik (a11y) uygulayıp uygulamadığını merak ediyorum. Rust UI'ları sık sık güzel görünüyor ama erişilebilirlik ihtiyacı çıkınca baştan yazmak gerekiyor
Sanal listeler ve tablolar özelliği gerçekten harika. Birçok UI framework'ünde bunu kendiniz uygulamak zorunda kalıyordunuz, bu da can sıkıcıydı
Rust'ta çok sayıda GUI toolkit'i var ama yeniden kullanılabilir bileşen koleksiyonları eksik
Bu koleksiyon faydalı görünüyor, ama çoğu web framework'ünün bileşen listesine benziyor. Yerel ortama özgü tek şey belki webview. Dosya açma iletişim kutusu gibi şeyler için rfd gibi harici kütüphaneler kullanmak gerekiyor; bu da stil tutarlılığını bozuyor