gtk-rs-core
Relm4
Our great sponsors
gtk-rs-core | Relm4 | |
---|---|---|
3 | 9 | |
259 | 383 | |
4.7% | - | |
9.8 | 9.5 | |
3 days ago | about 2 years ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
gtk-rs-core
-
Nix Software Center: gtk4/libadwaita app store for NixOS
nix-software-center> [1/6] Generating src/resources_gresource with a custom command nix-software-center> xml-stripblanks preprocessing requested, but XMLLINT is not set, and xmllint is not in PATH nix-software-center> [4/6] Generating data/dev.vlinkz.NixSoftwareCenter.metainfo.xml with a custom command nix-software-center> FAILED: src/nix-software-center nix-software-center> /nix/store/p643r4aczmzb0dhyrx3dj592f0s5v7xj-coreutils-9.0/bin/env CARGO_HOME=/build/r4npznxg986vxdl3gh7jhmqvv8jbvf02-source/build/cargo-home /nix/store/2gwhsd2jcz90zni0pwlhhfbmfbflixws-cargo-1.60.0/bin/cargo build --manifest-path /build/r4npznxg986vxdl3gh7jhmqvv8jbvf02-source/Cargo.toml --target-dir /build/r4npznxg986vxdl3gh7jhmqvv8jbvf02-source/build/src --release && cp src/release/nix-software-center src/nix-software-center nix-software-center> ninja: build stopped: subcommand failed. error: builder for '/nix/store/m9kf43zsr5hkq2igfdnag0phq154igks-nix-software-center-0.0.1.drv' failed with exit code 1; last 10 log lines: > building > build flags: -j8 -l8 > [0/6] Generating src/cargo-build with a custom command > error: package cairo-sys-rs v0.16.0 (https://github.com/gtk-rs/gtk-rs-core#9fe7e5ce) cannot be built because it requires rustc 1.63 or newer, while the currently active rustc version is 1.60.0 > [1/6] Generating src/resources_gresource with a custom command > xml-stripblanks preprocessing requested, but XMLLINT is not set, and xmllint is not in PATH > [4/6] Generating data/dev.vlinkz.NixSoftwareCenter.metainfo.xml with a custom command > FAILED: src/nix-software-center > /nix/store/p643r4aczmzb0dhyrx3dj592f0s5v7xj-coreutils-9.0/bin/env CARGO_HOME=/build/r4npznxg986vxdl3gh7jhmqvv8jbvf02-source/build/cargo-home /nix/store/2gwhsd2jcz90zni0pwlhhfbmfbflixws-cargo-1.60.0/bin/cargo build --manifest-path /build/r4npznxg986vxdl3gh7jhmqvv8jbvf02-source/Cargo.toml --target-dir /build/r4npznxg986vxdl3gh7jhmqvv8jbvf02-source/build/src --release && cp src/release/nix-software-center src/nix-software-center > ninja: build stopped: subcommand failed. For full logs, run 'nix log /nix/store/m9kf43zsr5hkq2igfdnag0phq154igks-nix-software-center-0.0.1.drv'. error: 1 dependencies of derivation '/nix/store/clykb6wwpv08l2vxnvnx8br7fzpx2y63-system-path.drv' failed to build error: 1 dependencies of derivation '/nix/store/321q6c143bf5w7m8njzvqkhjillbssk5-nixos-system-nflx-erahhal-t490s-22.05.20220902.67e4507.drv' failed to build
-
Gtk4 Tutorial
"Automatically figuring out which parent objects the class you're subclassing derives from"
AFAIK this is a language limitation, there is no way in a Rust macro to take a type and get all the traits that are implemented for that type.
"Helpers for properties and signals"
There is an open issue for this: https://github.com/gtk-rs/gtk-rs-core/issues/27
"A flat list of methods, instead of the public/imp split"
You can already do this in your code and use "pub fn" and "fn" like normal.
"I feel like I had a difficult time figuring out how to share state between widgets. You end up with lots of OnceCell, Rc, and RefCell, and it quickly becomes confusing,"
I think you are supposed to use bind_property and the gtk::Expression objects to do data binding, though that part is not so convenient to use from C or Rust either.
-
How to (properly) use subclassing in gtk4-rs?
Ideally this should be automated with a nice derive macro, see https://github.com/gtk-rs/gtk-rs-core/issues/27 . How that could look exactly is still up to discussion and not so easy while keeping it flexible. That derive macro would then likely also work with the id: usize parameter to the property setter/getter instead of the string name.
Relm4
- #31 Bit Windy ยท This Week in GNOME
-
Does Rust have a React-like GUI framework? If not, why not?
Relm4 is the newer version for GTK4 https://github.com/AaronErhardt/relm4
-
Pop collaboration with Relm4 / Writing GTK applications for Pop
[dependencies.relm4] git = "https://github.com/AaronErhardt/relm4" branch = "new-approach" [dependencies.relm4-macros] git = "https://github.com/AaronErhardt/relm4" branch = "new-approach"
-
GTK language bindings, GObject over native classes?
Probably, many gtk-rs devs have used C before and also GObjects can give you more control in some cases. But for the most part you will be fine using idiomatic Rust with something like Relm4.
-
Got a few questions for those who are daily drivin the PinePhone
As for writing apps, I've been enjoying Rust + Relm4 (https://github.com/AaronErhardt/relm4), but it might be easier to start off with Python or Vala and GTK or similar. A lot of gnome apps are Python. This looks like a good way to get started: https://www.gtk.org/docs/language-bindings/python/
- Gtk4 Tutorial
-
Whats your favourite open source Rust project that needs more recognition?
relm4 - like relm, but for GTK4
-
Recommended Rust GUI Libraries
Creator of [Relm4](https://github.com/AaronErhardt/relm4 here. Of course I might be a bit biased but I honestly think Relm4 has currently the best cross-platform and full-featured GUI experience for Rust programmers :)
-
What's everyone working on this week (29/2021)?
I'm working on relm4, an new version of relm using gtk4-rs
What are some alternatives?
Gtk4-tutorial - GTK 4 tutorial for beginners
Native Windows GUI - A light windows GUI toolkit for rust
Relm4 - Build truly native applications with ease!
gtk - DEPRECATED, use https://github.com/gtk-rs/gtk3-rs repository instead!
poppler-rs - Render PDFs in Rust using libpoppler
relm - Idiomatic, GTK+-based, GUI library, inspired by Elm, written in Rust
async-tungstenite - Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
marko-editor - Marko Editor is a simple WYSIWYG editor for note taking.
nix-editor - A simple rust program to edit NixOS configuration files with just a command
QML-rust - QML (Qt Quick) bindings for Rust language