vgtk
talent-plan
Our great sponsors
vgtk | talent-plan | |
---|---|---|
14 | 23 | |
1,038 | 9,746 | |
- | 1.7% | |
0.0 | 0.0 | |
about 2 years ago | 6 months ago | |
Rust | Rust | |
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.
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.
-
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
-
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/
-
Rust GUI: Introduction, a.k.a. the state of Rust GUI libraries (As of January 2021)
VGTK
talent-plan
-
Ask HN: Leetcode for Back End and Server Development
- https://hackattic.com/ : Interesting programming Problems.
- https://sadservers.com/ : Learn Linux by solving problems.
- https://fly.io/dist-sys/ : Distributed Systems Problems.
- https://github.com/pingcap/talent-plan/ : System Programming / Distributed System Challenge.
- https://protohackers.com/ : Server Programming Challenges.
- https://codecrafters.io/ : Implement server tech / softwares from scratch.
- https://hyperskill.org/ : Lots of projects based tutorials.
- https://github.com/pingcap/talent-plan/ : System Programming / Distributed System Challenge.
-
Gossip Glomers: Fly.io Distributed Systems Challenges
Awesome stuff!
Just to share in the way: open source training courses about distributed database and distributed systems by PingCap.
- Learning and Building a KV Database in rust.
-
Hey Rustaceans! Got a question? Ask here! (20/2022)!
I am doing pingcap's talent plan recently, where you need to implement a custom Deserializer for REdis Serialization Protocol for the building block 3. What confuses me most is the implementation of `EnumAccess` and `VariantAccess`. One of my attempt looks like the following:
-
Love
Looking at your project, I would recommend following this tutorial that makes you write key-value store in Rust. They don't provide you with a solution and make you come up with most stuff yourself, but give you some direction and structure for learning. You seem to have come up with most of this yourself already, but it might still be useful for you.
-
Newbie here. Just finished reading the book. What now?
If you are interested in network programming and distributed system, checkout https://github.com/pingcap/talent-plan
-
I have to admit. The free code camp course is a bit more sparing than I would have preferred. How did everyone learn Rust?
I read the book and did the talent plan course on rust. It's a practical course where you have to a build a key value store. Link: https://github.com/pingcap/talent-plan They also provide the required content for you to build different parts of the project which also helped a lot.
-
How do I get this job?
To be honest they say to contact them. "For this role, we’re asking people to write us a small proxy that does just a couple of interesting things (we’ll tell you more). " You can get experience in what you invest time into, kinda, if you make an http cli client, you'll know how to make one. Take a look at Ferrous Systems or PingCap's open workshops
- What's everyone working on this week (30/2021)?
What are some alternatives?
dnsguide - A guide to writing a DNS Server from scratch in Rust
duckdb - DuckDB is an in-process SQL OLAP Database Management System
toydb - Distributed SQL database in Rust, written as a learning project
rust-plus-golang - Rust + Go — Call Rust code from Go using FFI
neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.
mini-redis - Incomplete Redis client and server implementation using Tokio - for learning purposes only
duckdb-rs - Ergonomic bindings to duckdb for Rust
incubator-horaedb - HoraeDB is a high-performance, distributed, cloud native time-series database.
headway - Self-hostable maps stack, powered by OpenStreetMap.
char_reader - A buffered char reader for rust, not breaking on wild contents
orbtk - The Rust UI-Toolkit.
easy_rust - Rust explained using easy English