SerenityOS author: "Rust is a neat language, but without inheritance and virtual dispatch, it's extremely cumbersome to build GUI applications"

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

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

    The Serenity Operating System 🐞

    That said, I do agree that UI are meant to be declarative. And even SerenityOS has its own declarative language to create the UI: GML

  • jakt

    The Jakt Programming Language

    I think this thread might be interesting to the people here. The guy eventually started working on his own safe language, Jakt: https://github.com/SerenityOS/jakt

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

  • iced

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

    Iced is my favorite. Pop os announced they'd be using it for their desktop environment, so the situation clearly isn't as dire as the tweet makes it seem.

  • Fyrox

    3D and 2D game engine written in Rust

    I successfully built my own retained-mode GUI library and made the editor with it for Fyrox Game Engine - https://github.com/FyroxEngine/Fyrox/tree/master/fyrox-ui . Only by using composition and message passing, I'm still excited how scalable this approach is. I built more than 50 various widgets with it - starting from simple buttons and ending node-based editors and docking managers. So I think you just need to pick a good approach that works fine with the language you're using.

  • slint

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

    I believe that Rust is not a great language to express the UI itself, because it is too explicit and putting too much importance on some details that doesn't matter for building UI. Rust can be a good language for the application logic though. Hence the ideas behind Slint.

  • impl-tools

    Helper macros: autoimpl, impl_scope

    This is partly solved with impl-tools. I opened a new PR documenting this.

  • rfcs

    RFCs for changes to Rust

    The need is real. See https://github.com/rust-lang/rfcs/pull/1546 for some more examples of this sort of problem, and bask in the glory of the nothingness being accomplished anytime fast.

  • 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