{"id":13665577,"url":"https://github.com/gtk-rs/gtk3-rs","last_synced_at":"2025-04-26T08:32:14.627Z","repository":{"id":39970686,"uuid":"304029091","full_name":"gtk-rs/gtk3-rs","owner":"gtk-rs","description":"Rust bindings for GTK 3","archived":true,"fork":false,"pushed_at":"2024-03-04T12:41:15.000Z","size":362893,"stargazers_count":507,"open_issues_count":43,"forks_count":88,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-19T23:25:56.736Z","etag":null,"topics":["atk","gdk","gdkx11","gtk","gtk-rs","gtk3","gtk3-macros"],"latest_commit_sha":null,"homepage":"https://gtk-rs.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gtk-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"open_collective":"gtk-rs"}},"created_at":"2020-10-14T13:46:29.000Z","updated_at":"2025-03-22T18:40:17.000Z","dependencies_parsed_at":"2022-08-09T15:36:56.349Z","dependency_job_id":"c11b5eab-80a9-4336-9a2f-2b2a6a5f9694","html_url":"https://github.com/gtk-rs/gtk3-rs","commit_stats":{"total_commits":8110,"total_committers":232,"mean_commits":"34.956896551724135","dds":0.7207151664611591,"last_synced_commit":"123b8d785bdb8e360d359a78d96da871667cffae"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gtk-rs%2Fgtk3-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gtk-rs%2Fgtk3-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gtk-rs%2Fgtk3-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gtk-rs%2Fgtk3-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gtk-rs","download_url":"https://codeload.github.com/gtk-rs/gtk3-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250907661,"owners_count":21506068,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atk","gdk","gdkx11","gtk","gtk-rs","gtk3","gtk3-macros"],"created_at":"2024-08-02T06:00:42.221Z","updated_at":"2025-04-26T08:32:14.580Z","avatar_url":"https://github.com/gtk-rs.png","language":"Rust","funding_links":["https://opencollective.com/gtk-rs"],"categories":["Rust","库 Libraries","Graphics Library"],"sub_categories":["GUI GUI"],"readme":"# gtk3-rs ![CI](https://github.com/gtk-rs/gtk3-rs/workflows/CI/badge.svg)\n\n**This project is UNMAINTAINED. Please take a look at [gtk4-rs](https://github.com/gtk-rs/gtk4-rs) instead!**\n\nThe `gtk-rs` organization aims to provide safe Rust binding over `GObject`-based libraries.\nYou can find more about it on \u003chttps://gtk-rs.org\u003e.\n\nThis repository contains all the \"core\" crates of the gtk-rs organization. For more\ninformation about each crate, please refer to their `README.md` file in their directory.\n\n## Minimum supported Rust version\n\nCurrently, the minimum supported Rust version is `1.70.0`.\n\n## Documentation\n\n- [Examples](examples)\n- The Rust API [Stable](https://gtk-rs.org/gtk3-rs/stable/latest/docs/) / [Development](https://gtk-rs.org/gtk3-rs/git/docs/)\n\n## Ecosystem\n\nThe `gtk3-rs` repository contains Rust crates for GTK 3. However there is a large ecosystem of `GObject` libraries and many of these\nlibraries have Rust bindings based on the tooling included in `gtk-rs`.\nOf particular note:\n\n* [gtk-rs-core](https://github.com/gtk-rs/gtk-rs-core) - bindings for some of the core libraries such as `glib`, `gio`, `pango`, `graphene`\n* [gstreamer-rs](https://gitlab.freedesktop.org/gstreamer/gstreamer-rs) - bindings for the GStreamer media framework\n\nAdditionally, Rust bindings for various libraries are hosted on\n[GNOME's GitLab](https://gitlab.gnome.org) instance and can be found at\n\u003chttps://gitlab.gnome.org/World/Rust\u003e.\n\nWhen using crates that are not part of the `gtk-rs` repository, you will\nneed to be careful and ensure that they do not pull in incompatible versions of core\ncrates like `glib-rs`.\n\n## Regenerating\n\nTo regenerate crates using [gir], please use the `generator.py`\nfile as follows:\n\n```bash\n$ python3 generator.py\n```\n\nIf you didn't do so yet, please check out all the submodules before via\n\n```bash\n$ git submodule update --checkout\n```\n\n## Development\n\nThis repository is mostly split into two branches: `master` and `crate`.\n`master` contains the not yet released code and is where new developments\nare happening. `crate` contains the last release source code and isn't supposed to\nbe updated.\n\nThis repository is structured as follows:\n\n```text\n- crate/\n   |\n   |-- README.md\n   |-- Gir.toml\n   |-- Cargo.toml\n   |-- src/\n   |-- sys/\n```\n\nThe `crate` is a \"top\" directory (so \"atk\" or \"gdk\" in here for example).\nEach crate contains:\n\n * `README.md`: explanations about the crate itself and eventually some details.\n * `Cargo.toml`: descriptor of the crate, used by `cargo` and `Rust`.\n * `Gir.toml`: configuration used by [gir] to generate most of the crates' code.\n * `src`: the source code of the crate.\n * `sys`: the 1:1 bindings of the C API.\n\nThe `gir` and `gir-files` top folders are not crates, but are git submodules\nwhich respectively contain the [gir] tool and the [gir files] used by the generator.\n\nWhen running `generator.py` the tool will automatically update these git\nsubmodules and run the [gir] tool on the [gir files] to regenerate the code.\n\nDuring development, it is useful to execute the generator with a different\nversion of the [gir] tool or of the [gir files], for instance to test if\nthe code generation is successful before submitting a pull request to update\none of the submodules. This can be done by specifying arguments to the\ngenerator script, for instance, to run the generator on a local copy of the\ngir files:\n\n```bash\n$ python3 generator.py --gir-files-directory ../gir-files/\n```\n\nSee `python3 generator.py --help` for more details.\n\n\n[gir]: https://github.com/gtk-rs/gir\n[gir files]: https://github.com/gtk-rs/gir-files\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgtk-rs%2Fgtk3-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgtk-rs%2Fgtk3-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgtk-rs%2Fgtk3-rs/lists"}