gtk-rs-core VS async-tungstenite

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

async-tungstenite

Async binding for Tungstenite, the Lightweight stream-based WebSocket implementation (by sdroege)
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 async-tungstenite
3 1
257 382
4.7% -
9.8 6.9
3 days ago 17 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.

async-tungstenite

Posts with mentions or reviews of async-tungstenite. We have used some of these posts to build our list of alternatives and similar projects.
  • generic purpose library in rust
    1 project | /r/rust | 21 Mar 2021
    You can also mix them a bit. The library tungstenite is implemented like this, and allows async-tungstenite to reuse the same logic but in a non-blocking manner. You have the API of the second option, but if a write call returns WouldBlock, you return to the caller and allow them to continue when the buffer is flushed. This can get complicated saving state though (e.g. whether it's currently doing authentication, uploading a file, etc.), but see my note below about Rust's async/await.

What are some alternatives?

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

Gtk4-tutorial - GTK 4 tutorial for beginners

tokio-tungstenite - Future-based Tungstenite for Tokio. Lightweight stream-based WebSocket implementation

Relm4 - Build truly native applications with ease!

rust-websocket-lite - A fast, low-overhead WebSocket client

poppler-rs - Render PDFs in Rust using libpoppler

async-std - Async version of the Rust standard library

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

rustpad - Efficient and minimal collaborative code editor, self-hosted, no database required

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

another-rust-load-balancer - A load balancer with support for different middlewares and load balancing strategies, based on hyper and tokio

gtk_liststore_item - Automatic gtk::ListStore struct derive for Rust.

delay-timer - Time-manager of delayed tasks. Like crontab, but synchronous asynchronous tasks are possible scheduling, and dynamic add/cancel/remove is supported.