Crates that offer fully-featured UI toolkits suitable for real application development.

Primarily, this category aims to include only Rust-driven toolkits intended to be used to implement standard desktop and mobile applications in Rust itself. This intentionally excludes toolkits that offer bridges or bindings to other non-Rust UI toolkits, such as Qt, GTK, Electron, Flutter, React, FLTK, etc. This category also excludes toolkits that are primarily for games, such as Bevy.

Other GUI-related crates can be found at https://areweguiyet.com/.

  • A wgpu-powered graphical user interface (GUI) library with a reactive data model
    gui reactive ui widgets
  • MVVM-oriented (properties, observable collections, bindings), ui! macro, multiplatform, renderer-agnostic, with styles.
    framework gui mvvm ui widgets
  • Zero-cost ultra-high-performance declarative DOM library using FRP signals
    dom frp javascript reactive signal
  • GUI application library
    application graphics gui ui

Slint is a native GUI toolkit with a declarative language for embedded, desktop, and mobile applications.

Notes:

  • Stable 1.x API
  • Uses an easy to learn Domain specific language
  • Native look and feel with a built-in widget set
  • Live preview and editor integration
  • Support for AccessKit
  • Focus on small footprint and performance
  • Triple-licensed: GPL, a royalty-free license for desktop/mobile, and a commercial license for proprietary embedded use

Well suited for applications with complex visualizations, multimedia, or those that directly use an OpenGL context.

Inspired by Dear ImGui; for bindings to Dear ImGui see imgui.

Notes:

  • Immediate-mode style API, which comes with advantages and disadvantages
  • Relatively simple to integrate with game engines and other GUI frameworks
  • Support for AccessKit and a built-in screen reader
  • Pleasant appearance out of the box
  • Does not support platform-native look and feel

https://github.com/emilk/egui/wiki/3rd-party-egui-crates

KAS


xilem

dioxus

  • Freya is a cross-platform GUI library for Rust powered by 🧬 Dioxus and 🎨 Skia
    desktop dioxus gui skia ui
Comparison of Rust GUI Toolkits
name statusWindowsmacOSLinuxiOSAndroidWebEmbeddeduses webview? license downloads
no MIT OR Apache-2.0 5,851
(732 recent)
Fui
no GPL-3.0-or-later WITH Classpath-exception-2.0 18,437
(1,835 recent)
no MIT 260,426
(36,002 recent)
no MIT 13,711
(1,405 recent)
no GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 703,303
(119,607 recent)
no MIT OR Apache-2.0 9,254,571
(1,987,049 recent)
no MIT 9,205
(2,172 recent)
kas
no Apache-2.0 37,905
(4,347 recent)
no MIT 1,176,596
(290,681 recent)
yes Apache-2.0 OR MIT 7,465,798
(1,885,354 recent)
yes MIT 1,697,414
(344,554 recent)
in development no Apache-2.0 4,160
(1,061 recent)
yes MIT OR Apache-2.0 718,960
(170,882 recent)
no MIT 26,410
(4,823 recent)