Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork189
gtk-rs/gtk4-rs
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A group of crates that aims to provide completeGTK 4 bindings. This repository contains all the "core" crates of GTK 4.
- GTK
- GDK: An intermediate layer which isolates GTK from the details of the windowing system.
- GDK Macos: Macos backend specific functions.
- GDK Wayland: Wayland backend specific functions.
- GDK Win32: Windows backend specific functions.
- GDK X11: X backend specific functions.
- 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 thegtk-rs-core repository.
For more information about each crate, please refer to theirREADME.md
file in their directory.
Currently, the minimum supported Rust version is1.83
.
- Examples
- BookStable
- The Rust APIStable /Development
Thegtk4-rs
repository contains Rust crates for GTK 4. However there is a large ecosystem ofGObject
libraries and many of theselibraries have Rust bindings based on the tooling included ingtk-rs
.Of particular note:
- gtk-rs-core - bindings for some of the core libraries such as
glib
,gio
,pango
,graphene
- gstreamer-rs - bindings for the GStreamer media framework
Additionally, Rust bindings for various libraries are hosted onGNOME's GitLab instance and can be found athttps://gitlab.gnome.org/World/Rust.
When using crates that are not part of thegtk4-rs
repository, you willneed to be careful and ensure that they do not pull in incompatible versions of corecrates likeglib-rs
.
A small list of applications built with gtk4-rs:
- Solanum: A pomodoro timer
- Shortwave: An internet radio player
- Authenticator: A two-factor code generator
- Health: A health tracking app
- Video Trimmer: A fast video trimmer
Libraries built with gtk4-rs:
- Relm4: An idiomatic GUI library inspired by Elm
The bindings are composed of two parts:
- Automatically generated ones usinggir
- Manual parts
The automatic ones can be generated using thegenerator.py
script
python3 ./generator.py
If you didn't do so yet, please check out all the submodules before via
$ git submodule update --checkout
All the crates exceptgtk4-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 bygir 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.
About
Rust bindings of GTK 4
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.