Are we GUI Yet? The state of building user interfaces in Rust

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

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

    Discontinued Slint is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript. [Moved to: https://github.com/slint-ui/slint]

  • Windows UI Library

    Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications

    Microsoft's ongoing efforts for WinUI seem to be missing.

    https://github.com/microsoft/microsoft-ui-xaml/issues/2488

    As mentioned on the thread, the current samples are at https://github.com/microsoft/windows-rs

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

  • windows-rs

    Rust for Windows

    Microsoft's ongoing efforts for WinUI seem to be missing.

    https://github.com/microsoft/microsoft-ui-xaml/issues/2488

    As mentioned on the thread, the current samples are at https://github.com/microsoft/windows-rs

  • gtk-rs

    Discontinued Rust bindings for GTK 3

    GTK+ on Rust is a thing that is seeing a lot of active work (see https://gtk-rs.org/). I think some of the core gnome stuff has even moved over to rust at this point (like libsrvg).

  • areweguiyet

    A website built for the Rust community

  • FlatLaf

    FlatLaf - Swing Look and Feel (with Darcula/IntelliJ themes support)

    If you are looking to use Java. This is very good

    https://github.com/JFormDesigner/FlatLaf

    There’s also Kotlin multi platform

  • nodegui

    A library for building cross-platform native desktop applications with Node.js and CSS 🚀. React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org

    (Disclaimer: My knowledge of Rust very limited, but I have quite a bit of experience with getting Qt/KDE classes to work with other languages.)

    You are absolutely right. The effort to be acceptable bindings for Qt would be a tiny fraction of the cost compared to building a whole new Rust native GUI library.

    Qt is huge set of libraries with an equally huge API. But there are a lot of shortcuts and smart ways of approaching the problem to get what you want out of Qt for minimum effort.

    Bindings like PyQt and even PySide go for the nuclear option of generating bindings for the whole Qt API and trying to match the C++ API in style too. This is an absolutely massive huge task. Also, getting people to contribute to an open source bindings project is hard. Getting people to contribute to a bindings generator is even harder.

    NodeGui https://github.com/nodegui/nodegui, Qt bindings for Nodejs, on the other hand takes a very different approach which in one way is low-tech but I think is actually very smart. I'll summerise the differences:

    * It focuses on Qt Widgets first. This greatly reduces the amount of work to the parts that people actually need. (BTW, if you just want QML and Rust back-end then Jos van den Oever's work at https://invent.kde.org/sdk/rust-qt-binding-generator has probably got you covered already.)

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

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