Rust GUI framework

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • flutter_embedder

    Flutter embedder written in Rust (WIP)

  • I personally settled on Flutter. It's a modern declarative UI framework by Google that was designed for mobile apps, but it can also do desktop and web these days. It can be used as a library using its embedder API that can render to Vulkan, Metal and OpenGL. So, it can be embedded in a wgpu context (here's my prototype for that based on wgpu/Vulkan and winit). Flutter uses Dart for UI programming, which is fine for me, since a lot of iteration is necessary for that, and Flutter allows Dart code to be hot reloaded during development (so you just have to save your file and the running application is updated automatically, keeping all of its state intact). Rust wouldn't be able to do that at the moment. Web support is trivial, because Flutter Web allows integrating HTML elements between its UI layers. I can simply insert a canvas there and link that to wgpu.

  • flutter_rust_bridge

    Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.

  • There's the flutter_rust_bridge project that allows interop between Rust and Dart, allowing the Flutter part to communicate directly with the 3D rendering part written in Rust. I've spent the last two weeks getting the bridge to the point where I can use it. It's still a bit rough, especially around async, but it works so far on both web and native.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Godot

    Godot Engine – Multi-platform 2D and 3D game engine

  • You also have Godot. It is a game engine and while you will need some setup for using rust it will make developing your application way easier:

  • iced

    A cross-platform GUI library for Rust, inspired by Elm

  • There is Iced which is used by system76 in Pop!_OS, Druid [DISCONTINUED], GTK-rs, Relm, Azul and Tauri. Personally I would use Tauri for its speed using the OS's native web render, documentation of use with things such as Sveltekit and the ability to make UI's using JS, CSS and HTML. Tauri similarly to Electron whilst being far faster. But its up to personal preference really. There aren't any solid "go to" options at the moment.

  • druid

    A data-first Rust-native UI design toolkit. (by linebender)

  • There is Iced which is used by system76 in Pop!_OS, Druid [DISCONTINUED], GTK-rs, Relm, Azul and Tauri. Personally I would use Tauri for its speed using the OS's native web render, documentation of use with things such as Sveltekit and the ability to make UI's using JS, CSS and HTML. Tauri similarly to Electron whilst being far faster. But its up to personal preference really. There aren't any solid "go to" options at the moment.

  • relm

    Idiomatic, GTK+-based, GUI library, inspired by Elm, written in Rust

  • There is Iced which is used by system76 in Pop!_OS, Druid [DISCONTINUED], GTK-rs, Relm, Azul and Tauri. Personally I would use Tauri for its speed using the OS's native web render, documentation of use with things such as Sveltekit and the ability to make UI's using JS, CSS and HTML. Tauri similarly to Electron whilst being far faster. But its up to personal preference really. There aren't any solid "go to" options at the moment.

  • Azul

    Desktop GUI Framework

  • There is Iced which is used by system76 in Pop!_OS, Druid [DISCONTINUED], GTK-rs, Relm, Azul and Tauri. Personally I would use Tauri for its speed using the OS's native web render, documentation of use with things such as Sveltekit and the ability to make UI's using JS, CSS and HTML. Tauri similarly to Electron whilst being far faster. But its up to personal preference really. There aren't any solid "go to" options at the moment.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • tauri

    Build smaller, faster, and more secure desktop applications with a web frontend.

  • There is Iced which is used by system76 in Pop!_OS, Druid [DISCONTINUED], GTK-rs, Relm, Azul and Tauri. Personally I would use Tauri for its speed using the OS's native web render, documentation of use with things such as Sveltekit and the ability to make UI's using JS, CSS and HTML. Tauri similarly to Electron whilst being far faster. But its up to personal preference really. There aren't any solid "go to" options at the moment.

  • egui

    egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

  • egui

  • dioxus

    Fullstack GUI library for web, desktop, mobile, and more.

  • Dioxus

  • freya

    Native GUI library for 🦀 Rust powered by 🧬 Dioxus and 🎨 Skia.

  • Freya

  • vizia

    A declarative GUI library written in Rust

  • Vizia

  • kas

    Another GUI toolkit

  • KAS GUI

  • concoct

    A reactive runtime for embedded systems in Rust

  • Concoct

  • rui

    Declarative Rust UI library

  • rui

  • rustdesk

    An open-source remote desktop, and alternative to TeamViewer.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts