Frequently Asked Questions

Here are some questions we answered a few times. If one is missing, don’t hesitate to open an issue/pull request on the repository so it can be added later on.

Why are releases so long?

The gtk-rs organization is not just some GNOME libraries bindings in Rust but also an ecosystem. A change in a crate can force all other crates to be regenerated!

Also, please keep in mind that gtk-rs members and contributors are doing it freely on their free time. That slows things down but at least, they’re done. :)

How are gtk-rs maintained crates selected?

Currenlty we only add crates to the gtk-rs project that are required for the existing stack. A growing collection of other projects that are based on gtk-rs and gir can be found on the GNOME GitLab.

I want more gtk-rs examples!

You can find more examples in the corresponding respositories

or have a look at the source code of the projects listed on our start page.

Why is documentation just a copy of the C one?

Considering the massive amount of documentation that would need to be written if we intended to do it ourselves (which is just impossible), we decided to reuse the C one directly. A few improvements are being performed (like generating links between types for instance) and a few more will come later on.

Why isn’t documentation directly into the source files and how can I have it locally?

Simple answer: because of license issues. GNOME is under LGPL whereas gtk-rs is under MIT. If we included GNOME docs directly into the source code, we’d have to switch the license to match the GNOME one.

Currently, documentation is generated as follows:

If you want to have it locally, you’ll have to run this command:

cargo install rustdoc-stripper
./generator.py --embed-docs

You will need rust nightly to build the docs.

cargo +nightly doc --features dox --no-deps --open