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

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

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

    A data-first Rust-native UI design toolkit. (by linebender)

    So I read the 7 month old thread, and I found this comment particularly interesting: https://news.ycombinator.com/item?id=28332803

    Basically, it answers the question, "why do Rust GUI frameworks use enums rather than closures for messages in the Elm update pattern?" It is very insightful, but doesn't tell the whole story. In particular, as a major counterexample, Druid does use closures for stuff buttons, and they update state exactly as expected. That said, the Druid approach does have major drawbacks, chief among them that the app state needs a `Data` bound, which (oversimplifying slightly) means that it only works well with immutable data structures.

    As it turns out, I've been thinking about how to solve this problem - closures that have convenient access to mutable app state without strange bounds on that state, or strange control flow when doing things like adding and deleting widgets, and think I've finally cracked it. I will be doing a writeup when I have time, but for the eager and curious, there is a code sketch at https://github.com/linebender/druid/blob/lasagna/lasagna/src... .

  • iced

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

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

  • glicol

    Graph-oriented live coding language and music/audio DSP library written in Rust

    Before, I am not so sure whether I am right to use Message in my audio library design (https://github.com/chaosprint/glicol/tree/main/rs/synth). Now I am really inspired by this GUI lib.

  • revery

    :zap: Native, high-performance, cross-platform desktop apps - built with Reason!

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

  • sciter

    Sciter: the Embeddable HTML/CSS/JS engine for modern UI development

    It's not open source, but https://sciter.com/ is basically this. JS, but with a custom rendering engine that isn't web/DOM based.

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