22 个版本 (14 个重大变更)
0.18.0 | 2023 年 8 月 13 日 |
---|---|
0.17.0 | 2023 年 2 月 9 日 |
0.16.0 | 2022 年 10 月 19 日 |
0.15.1 | 2022 年 1 月 15 日 |
0.1.1 | 2015 年 5 月 24 日 |
#714 in Unix API
180,442 每月下载量
用于 486 个crate (38 个直接使用)
250KB
5.5K SLoC
gtk3-rs
该项目不再维护。请查看 gtk4-rs 代替!
gtk-rs 组织旨在提供基于 GObject
库的安全 Rust 绑定。您可以在 https://gtk-rs.org 上了解更多信息。
此仓库包含 gtk-rs 组织的所有 "核心" crate。有关每个 crate 的更多信息,请参阅其目录中的 README.md
文件。
最低支持的 Rust 版本
目前,最低支持的 Rust 版本是 1.70.0
。
文档
生态系统
gtk3-rs 仓库包含 GTK 3 的 Rust crate。然而,有一个庞大的基于 GObject
库的生态系统,其中许多库都有基于 gtk-rs 中包含的工具的 Rust 绑定。特别值得注意的是
- gtk-rs-core - 对一些核心库(如
glib
、gio
、pango
、graphene
)的绑定 - gstreamer-rs - GStreamer 媒体框架的绑定
此外,Rust库的绑定托管在GNOME的GitLab实例上,可以在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