A group of crates that aims to provide complete GTK 4 bindings. This repository contains all the "core" crates of GTK 4.
- GDK: An intermediate layer which isolates GTK from the details of the windowing system.
- GSK: An intermediate layer which isolates GTK from the details of the OpenGL or Vulkan implementation.
The GTK 4 crates also depends on other libraries part of the platform like:
Those are common with the GTK 3 and GStreamer bindings and are part of the gtk-rs-core repository.
For more information about each crate, please refer to their
README.md file in their directory.
Minimum supported Rust version
Currently, the minimum supported Rust version is
gtk4-rs repository contains Rust crates for GTK 4. However there is a large ecosystem of
GObject libraries and many of these
libraries have Rust bindings based on the tooling included in
Of particular note:
- gtk-rs-core - bindings for some of the core libraries such as
- gstreamer-rs - bindings for the GStreamer media framework
When using crates that are not part of the
gtk4-rs repository, you will
need to be careful and ensure that they do not pull in incompatible versions of core
Built with GTK4 Rust bindings
Below is a list of applications built using the Rust bindings of GTK 4
The bindings are composed of two parts:
- Automatically generated ones using gir
- Manual parts
The automatic ones can be generated using the
All the crates except
gtk4-macros follow this structure
./crate ├── Gir.toml ├── README.md ├── src │ ╰── auto ├── sys ╰── tests
README.md: Explanations about the crate itself and eventually some details.
Gir.toml: Used by gir to generate most of the code.
src: Contains the source code of the crate.
src/auto: Contains the automatically generated part of the source code.
sys: Contains the 1:1 bindings of the C API.