GUIs mit Rust

Im Retained Mode werden üblicherweise mehrere Referenzen auf die selben Daten gehalten (häufig sogar wechselseitig), und sowohl zum Lesen, als auch zum Verändern genutzt:

In (Safe) Rust ist dies, aufgrund des Ownership-Modells bzw. des Borrow Checkers, nicht (ohne Weiteres) möglich.

Alternativen:

GUI-Libraries für Rust

Aktiv entwickelte, mit Rust nutzbare GUI-Libraries sind:

Accessibility Autokorrektur Introspection Layers Multi Windowing Tab Focusing WebAssembly
egui ja nein ja ja ja
GPUI nein nein Element Inspector ja ja nein
Iced nein nein Debug Overlay ja nein
Slint ja nein ja ja ja

Widgets

Button Checkbox Dropdown Box Menü Radio Button Table Tabs Text Textinput, multi-line Textinput, single-line Toggle
egui Button Checkbox ComboBox MenuBar (nicht nativ) RadioButton Table Label TextEdit TextEdit -
GPUI - - - set_menus.rs (nativ) - - - text.rs - - -
Iced Button Checkbox PickList Radio - Text TextEditor TextInput Toggler
Slint Button CheckBox ComboBox MenuBar (nativ) - StandardTableView TabWidget Text TextEdit LineEdit Switch

Layout

Box, horizontal Box, vertikal Grid
egui Grid
GPUI grid_layout.rs
Iced Row Column Grid
Slint HorizontalLayout VerticalLayout GridLayout

Diskussion

egui

Chancen:

Risiken:

GPUI

GPUI wurde speziell für den GUI-Texteditor Zed entwickelt.

Chancen:

Risiken:

Iced

Iced wurde von Kraken gesponsort, um damit Kraken Desktop zu entwickeln. Eine kommende Version von Pop!_OS's COSMIC Desktop soll auf Iced basieren.

Roadmap

Chancen:

Risiken:

Slint

Slint wurde von 2 ehemaligen Qt-Entwicklern gegründet.

Chancen:

Risiken:

GUI-Applikationen, die in Rust geschrieben sind

alert-after, gTexViewer, HexoSynth, Inlyne, Rusty Shadertoy Browser, Sprite


Alle Angaben ohne Gewähr • HomeKontakt