Project site | Online documentation
Rust bindings and wrappers for GLib, GDK 3, GTK+ 3 and Cairo.
gtk expects GTK+, GLib and Cairo development files to be installed on your system. See the requirements page.
We recommend using crates from crates.io, as demonstrated here.
If you want to track the bleeding edge, use the git dependency instead:
toml
[dependencies]
gtk = { git = "https://github.com/gtk-rs/gtk.git" }
Avoid mixing versioned and git crates like this:
```toml
[dependencies] gdk = "0.2" gtk = { git = "https://github.com/gtk-rs/gtk.git" } ```
The majority of the documentation is kept in a separate repo due to licensing issues. You can pull it in with cargo:
```shell
cargo build --embed-lgpl-docs ```
Changes to those doc-comments should be submitted to the lgpl-docs
repo. Avoid
including those embedded doc-comments in PRs to this repo.
The opposite feature removes all of those docs regardless of edits:
```shell
cargo build --purge-lgpl-docs ```
These features rewrite the crate sources so it's sufficient to enable them
once. Omitting them in the following cargo
invocations will not undo their
effects!
Contributor you're welcome!
See the general bindings documentation.
Most of the bindings (src/auto
) are generated by gir using this configuration file. After editing Gir.toml
the sources can be regenerated with
```shell
make gir ```
When opening a PR please put the changes to the src/auto
directory in a separate commit.
gtk is available under the MIT License, please refer to it.