Unlocking the GNOME stack for Rust §
The gtk-rs project provides safe bindings to the Rust language for fundamental libraries from the GNOME stack like GLib, Cairo, GTK 3 and GTK 4.
Available crates §
The following table contains the most popular crates of gtk-rs. More information on all existing crates is available under the corresponding links in the Project column in the table below.
Project | Crate | Docs | |
---|---|---|---|
Core | cairo-rs | v0.15.1 | |
gio | v0.15.1 | ||
glib | v0.15.1 | ||
pango | v0.15.1 | ||
GTK 3 | gtk | v0.15.1 | |
GTK 4 | gtk4 | v0.4.1 |
The introductory book §
Julian Hofer is writing a book titled GUI development with Rust and GTK 4. We recommend both new and experienced gtk-rs users to have a look at it. While this book is targeted at people who want to develop GTK 4 applications, it also covers more general aspects of the GNOME stack such as GObject Concepts, The Main Event Loop and GSettings.
The gtk-rs ecosystem §
By now, a number of additional bindings for GObject based libraries exist. While not part of the gtk-rs project, many of them are developed in close collaboration. Notable other projects within the gtk-rs ecosystem are
- GStreamer Open source multimedia framework
- Adwaita Building blocks for modern GNOME applications
- SourceView 5 A library extending GtkTextView with features typical for a source code editor
- Relm 4 An idiomatic GUI library inspired by Elm and based on gtk4-rs
More bindings can be found as part of the GNOME GitLab Rust Group.
All these bindings are generated on the basis of GObject introspection (GIR). The book Generate Rust bindings for GIR based libraries provides the documentation for the tools that gtk-rs provides to generate such bindings.
Apps built with gtk-rs §
Discover 41 projects powered by gtk-rs
- Authenticator
- Banner Viewer
- Cigale
- color_blinder_gtk
- Contrast
- Cookbook
- Czkawka
- Font Finder
- Fractal
- Gfret
- GNvim
- gled
- glide
- gpsami
- gtktranslate
- Icon Library
- Identity
- Image Roll
- Iridium
- lognplot
- mcmmtk
- media-toc
- Myxer
- neovim-gtk
- noaa-apt
- pcatk
- Pika Backup
- Pizarra
- Podcasts
- Popsicle
- process-viewer
- Projectpad
- Pt
- relm
- ScreenSelector.so
- Shortwave
- Social
- Tau
- Telegrand
- Tundra
- Video Trimmer
If you want your app to be added to this list, please create a Pull Request for it.
Sponsors §
Thanks to everyone supporting us on open collective! A list of all sponsors can be seen on our open collective page.