redux-rs
AudioKitUI
redux-rs | AudioKitUI | |
---|---|---|
1 | 1 | |
28 | 183 | |
- | 1.6% | |
10.0 | 5.9 | |
over 6 years ago | 11 days ago | |
Rust | Swift | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
redux-rs
-
Xilem: An Architecture for UI in Rust
From the first paragraph:
> ... Architectures that work well in other languages generally don’t adapt well to Rust, mostly because they rely on shared mutable state and that is not idiomatic Rust, to put it mildly. ...
The author doesn't mention Redux (the architecture), which is surprising. There are three principles[1]:
1. The global state of your application is stored in an object tree within a single store.
2. The only way to change the state is to emit an action, an object describing what happened.
3. Changes are made with pure functions.
In other words, the components of an application never mutate the state tree directly. Rather, they emit actions which re-generates the state tree without mutation.
This style of state management is compatible with Rust's ownership model. The emphasis on pure functions means that it's not necessary for your application to hold multiple mutable references, which I'm guessing underlies the "generally don't adapt well to Rust" part of the claim.
[1] https://redux.js.org/understanding/thinking-in-redux/three-p...
[2] https://github.com/jaredonline/redux-rs
AudioKitUI
-
Xilem: An Architecture for UI in Rust
Ok I'm not Raph but, FWIW, my 3d sculpting app is written using SwiftUI (https://sculptura.app), which is not a view around a database (in fact it was previously UIKit... SwiftUI is so much better). I recently implemented a piano-roll editor in SwiftUI: https://github.com/AudioKit/AudioKitUI/tree/main/Sources/Aud.... I have little doubt a DAW could be implemented in SwiftUI easier than with UIKit or AppKit.
What are some alternatives?
bonsai - A library for building dynamic webapps, using Js_of_ocaml
solid-site - Code that powers the SolidJS.com platform.
glicol - Graph-oriented live coding language and music/audio DSP library written in Rust
slint - Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.
Carbon - 🚴 A declarative library for building component-based user interfaces in UITableView and UICollectionView.
sycamore - A library for creating reactive web apps in Rust and WebAssembly
rui - Declarative Rust UI library
incr_dom - A library for building dynamic webapps, using Js_of_ocaml.