vgtk
Relm4
Our great sponsors
vgtk | Relm4 | |
---|---|---|
14 | 23 | |
1,038 | 1,310 | |
- | 5.7% | |
0.0 | 8.9 | |
about 2 years ago | 5 days ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | Apache License 2.0 |
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.
vgtk
-
Rust: State of GUI, December 2022 – KAS blog
A pretty fun Rust GUI experienc is vgtk[0], which is doing a bunch of macro magic to give a "we're coding in React" vibe to GTK+. I don't really have a specific thing I want to code in a native GUI at the moment but if I did I think this would be the most tempting for me.
[0]: https://github.com/bodil/vgtk/
-
Code bloat has become astronomical
a stateful GUI markup language is react. it is not yet the case that react-like code works for desktop, though there are cool examples like vgtk https://github.com/bodil/vgtk
- Vgtk - A declarative desktop ui framework for rust built on gtk and gtk-rs
-
A declarative desktop UI framework for Rust built on GTK and GTK-rs
from what i gather from https://github.com/bodil/vgtk/issues/78, you're better off using realm
I'm always curious to see these projects, because I've been experimenting with a React renderer for the GJS bindings for a while. It's frustrating because GTK "feels like" it's so close to being able to support a vdom/declarative paradigm, but the devil is in the details.
The simple use-cases like "Window > Box > Label" are easy to get going. The more complex widgets like Stack/Grid/TreeView ... aren't.
This project seems to have the same issue: https://github.com/bodil/vgtk/issues/40
This is made more difficult now GTK4 has removed the Container base class, so there's no longer a unified interface for adding children (although it had caveats in the first place).
I totally get the GTK view that (presumably) specific widgets are more intuitive with specific add/remove APIs (like the grid - one doesn't really "appendChild" to a grid).
It just feels like: if there was a consistent container API comparable to the web's appendChild approach, a vdom/declarative approach would require only a very light wrapper. Without it, I keep coming back to the idea of implementing wrapper widgets that expose that consistent API instead. And that's just not something I want to maintain - effectively duplicating each GTK widget for the purpose of making it fit into a tree model.
It's also a problem of trying to wrap richer functionality (pack_start and pack_end) into a simpler set (append only) of course.
So I don't know exactly what my point is :) Perhaps cautioning the reader that the simplicity of the approach comes with a catch.
-
Hacker News top posts: May 28, 2022
A declarative desktop UI framework for Rust built on GTK and GTK-rs\ (23 comments)
-
Newbie here. Just finished reading the book. What now?
Build your own To-do List Application in Rust: https://bodil.lol/vgtk/
Relm4
-
Writing Gnome Apps with Swift
There is Relm (https://relm4.org/). Which is in Rust is just GTK (through it's Rust bindings) with a nice reactivity layer on top.
-
Resources for learning to write ui files for GTK4
I’d recommend you checking out https://relm4.org if you know a little Rust. Relm4 is currently the easiest and most intuitive way to write GTK
-
[media] Czkawka 6.0 - File cleaner, now finds similar audio files by content, files by size and name and fix and speedup similar images search
Relm4 might make your migration easier. It has factories which make it easy to create lists (both sync and async) and recently added TypedListView as another useful abstraction over pure gtk-rs. There is a lot of potential in Rust + GTK, you just have to find idiomatic abstractions.
-
What are the scenarios where "Rewrite it in Rust" didn't meet your expectations or couldn't be successfully implemented?
Did you try Relm? It's an implementation is the elm architecture (think react) on top of Gtk. Given your experience with Gtk it might suit you really well, as you can even take only parts of it and continue using bare Gtk for the rest. Give it a try!
- Native App Development
-
GUI development with Rust and GTK 4
What about relm4? Is it generally feature complete? Can one use relm4 for most things, and drop to gtk4 for the oddball task that is not supported?
https://relm4.org/
-
Newbie needs help with Relm4 errors. On Kubuntu
Using this example: https://github.com/Relm4/Relm4/blob/main/examples/simple.rs
-
Forte! A new way of writing Gtk apps for GNOME.
What advantage would this Rust crate have over Relm4? It seems pretty similar to me, save for the property based syntax that Forte has, instead of the set_* ones used on Relm4.
-
Need guidance for developping GTK4 + Libwaita apps
If you like Rust I recommend Relm4, one of the best experiences I’ve had with a framework tbh, be sure to learn gtk-rs first.
- Rust: State of GUI, December 2022 – KAS blog
What are some alternatives?
neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.
gtk4-rs - Rust bindings of GTK 4
headway - Self-hostable maps stack, powered by OpenStreetMap.
dispatch-proxy - Combine internet connections, increase your download speed
orbtk - The Rust UI-Toolkit.
Gtk4-tutorial - GTK 4 tutorial for beginners
areweguiyet - A website built for the Rust community
gtk-rs - Rust bindings for GTK 3
piet - An abstraction for 2D graphics.
owlkettle - A declarative user interface framework based on GTK 4
libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
dioxus - Fullstack GUI library for web, desktop, mobile, and more.