layout | title |
---|---|
default |
FAQ |
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.
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. :)
Currently 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.
You can find more examples in the corresponding repositories
or have a look at the source code of the projects listed on our start page.
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.
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:
- When generating the crate, we also generate its documentation thanks to the GIR files.
- Then we remove all that documentation (using the rustdoc-stripper tool) from the source files and move it into the lgpl-docs repository.
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