26 个版本 (14 个重大更改)
0.18.0 | 2023 年 8 月 13 日 |
---|---|
0.17.0 | 2023 年 2 月 9 日 |
0.16.0 | 2022 年 10 月 19 日 |
0.15.3 | 2022 年 1 月 31 日 |
0.1.3 | 2015 年 7 月 18 日 |
1271 在 GUI 中
每月 199,129 次下载
在 487 个工具包中使用了它(直接使用 58 个)
1.5MB
32K SLoC
gtk3-rs
该项目不再维护。请查看 gtk4-rs 代替!
gtk-rs 组织旨在提供基于 GObject
库的安全 Rust 绑定。更多关于它的信息可以在 https://gtk-rs.org 找到。
此仓库包含 gtk-rs 组织的所有“核心”工具包。有关每个工具包的更多信息,请参阅其目录中的 README.md
文件。
最低支持的 Rust 版本
目前,最低支持的 Rust 版本是 1.70.0
。
文档
生态系统
gtk3-rs 仓库包含 GTK 3 的 Rust 工具包。然而,有一个庞大的 GObject
库生态系统,其中许多库都基于 gtk-rs 中包含的工具进行 Rust 绑定。特别值得注意的是
- gtk-rs-core - 一些核心库的绑定,如
glib
、gio
、pango
、graphene
- gstreamer-rs - GStreamer 媒体框架的绑定
此外,Rust 对各种库的绑定托管在 GNOME 的 GitLab 实例上,可在 https://gitlab.gnome.org/World/Rust 找到。
当使用不属于 gtk-rs
仓库的 crate 时,您需要小心,并确保它们不会引入与核心 crate(如 glib-rs
)不兼容的版本。
重新生成
要使用 gir 重新生成 crate,请按照以下方式使用 generator.py
文件:
$ python3 generator.py
如果您尚未这样做,请通过以下方式检出所有子模块:
$ git submodule update --checkout
开发
此仓库主要分为两个分支:master
和 crate
。 master
包含尚未发布的代码,是新发展的地方。 crate
包含最后发布源代码,不应该更新。
此仓库的结构如下
- crate/
|
|-- README.md
|-- Gir.toml
|-- Cargo.toml
|-- src/
|-- sys/
crate
是一个 "顶级" 目录(例如这里的 "atk" 或 "gdk")。每个 crate 包含以下内容:
README.md
:关于 crate 本身的说明和一些详细信息。Cargo.toml
:crate 的描述,由cargo
和Rust
使用。Gir.toml
:由 gir 使用的配置,用于生成大部分 crate 代码。src
:crate 的源代码。sys
:C API 的 1:1 绑定。
gir
和 gir-files
顶级目录不是 crate,而是 git 子模块,分别包含 gir 工具和生成器使用的 gir 文件。
当运行 generator.py
时,工具将自动更新这些 git 子模块,并在 gir 文件 上运行 gir 工具以重新生成代码。
在开发过程中,使用不同版本的 gir 工具或 gir 文件 执行生成器是有用的,例如在提交拉取请求以更新子模块之前测试代码生成是否成功。这可以通过指定生成器脚本的参数来完成,例如,运行生成器在 gir 文件的本地副本上
$ python3 generator.py --gir-files-directory ../gir-files/
有关详细信息,请参阅 python3 generator.py --help
依赖项
~1.3–1.9MB
~38K SLoC