Why is building a UI in Rust so hard?

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

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

    Rust / Wasm framework for creating reliable and efficient web applications

  • I disagree with the premise. Building a UI in Rust is fairly straightforward! Just look at Yew, Dioxus, or Slint and how they manage interfaces. I believe the core of the issue at hand is the same of mass adoption of Rust: people have to learn a new way of doing things, and that makes it somewhat scary to approach.

  • slint

    Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.

  • I disagree with the premise. Building a UI in Rust is fairly straightforward! Just look at Yew, Dioxus, or Slint and how they manage interfaces. I believe the core of the issue at hand is the same of mass adoption of Rust: people have to learn a new way of doing things, and that makes it somewhat scary to approach.

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

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

  • I disagree with the premise. Building a UI in Rust is fairly straightforward! Just look at Yew, Dioxus, or Slint and how they manage interfaces. I believe the core of the issue at hand is the same of mass adoption of Rust: people have to learn a new way of doing things, and that makes it somewhat scary to approach.

  • winsafe

    Windows API and GUI in safe, idiomatic Rust.

  • WinSafe says hello.

  • PacMan

    Pac-Man demo in Clojure (by pac1979)

  • And one can go and write pacman in the same way. It is basically the "functional core, imperative shell" pattern of arranging things: The UI is the shell and the computation the core.

  • egui

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

  • I have tried to use both https://docs.rs/fltk/latest/fltk/ and https://github.com/emilk/egui for my small tool https://github.com/PhilipK/BoilR .

  • BoilR

    Synchronize games from other platforms into your Steam library (by PhilipK)

  • I have tried to use both https://docs.rs/fltk/latest/fltk/ and https://github.com/emilk/egui for my small tool https://github.com/PhilipK/BoilR .

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

    A high performance rust-powered UI layout library

  • Rust actually has a library for this (Taffy - https://github.com/DioxusLabs/taffy). I know, because I implemented the CSS Grid support. It was a challenge, but everybody should be able to reuse that now.

  • Qt

    Qt Base (Core, Gui, Widgets, Network, ...)

  • For e.g. if you’re writing a framework, you need to interface with Cocoa on MacOS to draw windows, which only provides an Objective C or Swift interface. You can look at the Qt source code and see how they do it: https://github.com/qt/qtbase/tree/067b53864112c084587fa9a507eb4bde3d50a6e1/src/plugins/platforms/cocoa

  • EasyGUI

    Utility library for creating pages on the Chromium Embedded Framework using HTMLRenderer (by JoshDavid)

  • GUI in APL in the wild

  • rust-cef

    Discontinued Bindings to the Chromium Embedded Framework for Rust

  • The great thing is that this also solves rust problem: just use CEF. Why didn’t the author thought about this?

  • iced

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

  • Glow support is planned to be removed https://github.com/iced-rs/iced/pull/1697 . Probably a good call.

  • gecko-dev

    Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html

  • I checked Firefox monorepo, it has over 4x more C++ than Rust.

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