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 reddit.com/r/rust

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Build time-series-based applications quickly and 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

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

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

    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

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

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