gtk-rs-core VS gtk4-rs

Compare gtk-rs-core vs gtk4-rs and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
gtk-rs-core gtk4-rs
3 22
257 1,651
4.7% 3.0%
9.8 9.5
2 days ago 4 days ago
Rust Rust
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of gtk-rs-core. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-08.
  • Nix Software Center: gtk4/libadwaita app store for NixOS
    11 projects | /r/NixOS | 8 Sep 2022
    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
    12 projects | news.ycombinator.com | 20 Oct 2021
    "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?
    2 projects | /r/rust | 3 Aug 2021
    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.

gtk4-rs

Posts with mentions or reviews of gtk4-rs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-23.
  • Integrate with Skia GL
    2 projects | /r/GTK | 23 Aug 2023
    The only example that shedded some light on the integration was gtk4 + femtovg. So I mimicked the example, using gtk4-rs and Skia's rust bindings. I had some code similar to the following inside a subclass of GLArea to setup Skia's DirectContext, but it failed:
  • error[E0432]: unresolved import `gtk::FileDialog`
    1 project | /r/learnrust | 31 Jul 2023
    Hi, I am studying gtk4 with rust, now trying to check examples from https://github.com/gtk-rs/gtk4-rs/tree/master/examples some of them are building and compiling but text_viewer(cargo run --bin text_viewer) and some others are failing with the error below
  • How do I use ColumnView ?
    1 project | /r/GTK | 14 May 2023
    I created a demo of using column view in gtk4-rs rust here...maybe be a point of reference https://github.com/gtk-rs/gtk4-rs/tree/master/examples/column_view_datagrid
  • GUI development with Rust and GTK 4
    15 projects | news.ycombinator.com | 25 Apr 2023
  • My (challenging) experience building a window switcher for Ubuntu
    6 projects | /r/rust | 5 Mar 2023
    To build the UI, I used gtk-rs. My experience with this library was quite pleasant; it was easy to use and there were a lot of examples. However, it isn't as widely used as, say, React, so it was difficult to find answer on Stack Overflow (I come from a JavaScript/Typescript background).
  • Are there any good UI/GUI libraries out there?
    8 projects | /r/rust | 30 Nov 2022
    There are good GTK bindings for Rust (https://github.com/gtk-rs/gtk4-rs and https://github.com/Relm4/Relm4)
  • GTK4 + Rust + GLArea: How do I set the opengl version?
    1 project | /r/GTK | 6 Nov 2022
    I've been following this example to get something that works for whatever the default opengl context version is, however, I can't figure out how to request a specific opengl version on context creation: https://github.com/gtk-rs/gtk4-rs/tree/master/examples/glium_gl_area
  • Rust for Linux can be compiled with GCC codegen(only few hacks are needed)
    2 projects | /r/linux | 9 Oct 2022
    gtk4-rs itself feels like it takes very little time to build: https://github.com/gtk-rs/gtk4-rs but when you add up all the time to building all examples afterwards, it's about the same and provides the equivalent of capabilities of QT(C++ and RUST) so yes it's going to take time to build.
  • The state of Rust GUI libraries
    9 projects | dev.to | 17 Aug 2022
    The gtk-rs project provides safe Rust bindings for GNOME stack-based libraries, like the GTK 3 and GTK 4 libraries. The gtk3-rs and gtk4-rs libraries provides GTK 3 and GTK 4 functionalities, respectively.
  • Any good resources for using Rust with GTK4 and Libadwaita?
    3 projects | /r/gnome | 12 Mar 2022
    Check out the examples in the gtk4-rs repository.

What are some alternatives?

When comparing gtk-rs-core and gtk4-rs you can also consider the following projects:

Gtk4-tutorial - GTK 4 tutorial for beginners

tauri - Build smaller, faster, and more secure desktop applications with a web frontend.

Relm4 - Build truly native applications with ease!

egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

poppler-rs - Render PDFs in Rust using libpoppler

fltk-rs - Rust bindings for the FLTK GUI library.

async-tungstenite - Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation

cef - Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.

marko-editor - Marko Editor is a simple WYSIWYG editor for note taking.

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. [Moved to: https://github.com/slint-ui/slint]

nix-editor - A simple rust program to edit NixOS configuration files with just a command

gtk-rs - Rust bindings for GTK 3