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 - ja ja ja
GPUI - - Element Inspector ja ja -
Iced - - Debug Overlay ja -
Slint ja - 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 Table Text TextEditor TextInput Toggler
Slint Button CheckBox ComboBox MenuBar (nativ) - StandardTableView TabWidget Text TextEdit LineEdit Switch

Layout

Box, horizontal Box, vertikal Grid
egui ui.horizontal() ui.vertical() 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. Pop!_OS's COSMIC Desktop basiert ebenfalls auf Iced.

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, Inlyne, Moly, Rusty Shadertoy Browser, Sprite


Alle Angaben ohne Gewähr • HomeKontakt