Rust GUI framework

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

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Access the most powerful time series database as a service
  • 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

    High-level memory-safe binding generator for Flutter/Dart <-> Rust

    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.

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • 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.

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • 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

    React-like GUI library for desktop, web, mobile, TUI, and more.

    Dioxus

  • freya

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

    Freya

  • vizia

    A declarative GUI library written in Rust

    Vizia

  • kas

    Another GUI toolkit

    KAS GUI

  • concoct

    An experimental cross-platform UI framework in rust.

    Concoct

  • rui

    Declarative Rust UI library

    rui

  • rustdesk

    Virtual / remote desktop infrastructure for everyone! Open source TeamViewer / Citrix alternative.

  • SaaSHub

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

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