vgtk
piet
Our great sponsors
vgtk | piet | |
---|---|---|
14 | 11 | |
1,038 | 1,224 | |
- | 2.0% | |
0.0 | 5.3 | |
about 2 years ago | 9 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/
piet
- Cairo – Open-Source 2D Graphics Layer/API with Fonts and Many Back-Ends
-
A simple 2d graphic library
You can even check https://github.com/linebender/piet and https://github.com/RazrFalcon/tiny-skia. They are pure rust libraries. Skia as a whole is a big binary to add.
-
Druid, a Rust-native UI toolkit, released v0.8 after two years of work by 80 contributors.
First, at the deepest level, we are moving away from Piet, which is a cross-platform 2D graphics abstraction. Under the hood it uses whatever the standard OS API is. Instead we will be using Vello which we have been building as a research project for years already. It is starting to near its v0.1, which is very exciting. Fundamentally it is a novel GPU accelerated 2D rendering engine with a strong focus on performance. It is not ready for benchmarks yet, but we're confident it will deliver. If you're curious, you can check out the Vello roadmap for 2023.
-
What 2D graphics library would you most recommend?
you can use piet, although that is more of an abstraction over existing, platform-dependent libraries. So not really pure rust, but definitely cross-platform.
-
Piet-GPU Progress: Clipping
Piet is the backend for the Druid UI framework. It is indeed cross-platform. The SVG backend looks like it would work without an OS, but I'm not sure the value of a GUI toolkit without an OS anyway :)
https://github.com/linebender/piet#backends
https://github.com/linebender/druid/tree/master/druid-shell/...
-
Looking for an image manipulation library that can add text to images. (and has documentation for it)
Piet can render text. You can use Piet_common with the BitMapTarget to generate images Here is an example.
-
Simple graphics library using software rendering?
Piet (https://github.com/linebender/piet) should work.
-
What Graphics Library to use?
So the 3 I'm looking at right now are 1. druid 1. piet 1. bevy
-
Rust GUI: Introduction, a.k.a. the state of Rust GUI libraries (As of January 2021)
It relies on piet 2D graphic library; on Linux that means GTK/Cairo 2D primitives
-
Patrick Walton heading up Facebook's Rust team
You may be interested in taking a look at piet!
What are some alternatives?
neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.
embedded-graphics - A no_std graphics library for embedded applications
headway - Self-hostable maps stack, powered by OpenStreetMap.
areweguiyet - A website built for the Rust community
orbtk - The Rust UI-Toolkit.
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
Relm4 - Build truly native applications with ease!
druid - A data-first Rust-native UI design toolkit.
libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
Azul - Desktop GUI Framework