#gtk #gdk #gnome #ffi #gobject

gdkwayland-sys

libgdk-3-wayland 的 FFI 绑定

7 个版本 (4 个重大更改)

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.0.0 2021年4月4日

#969 in Unix API

Download history 32449/week @ 2024-04-08 32165/week @ 2024-04-15 31630/week @ 2024-04-22 30977/week @ 2024-04-29 29917/week @ 2024-05-06 30145/week @ 2024-05-13 28622/week @ 2024-05-20 29202/week @ 2024-05-27 29128/week @ 2024-06-03 26532/week @ 2024-06-10 27885/week @ 2024-06-17 27797/week @ 2024-06-24 30605/week @ 2024-07-01 29300/week @ 2024-07-08 28076/week @ 2024-07-15 28361/week @ 2024-07-22

119,088 monthly downloads
用于 74 个 crate(3 个直接使用)

MIT 许可证

260KB
5.5K SLoC

gtk3-rs CI

此项目未维护。请查看 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 - 为一些核心库提供绑定,如 glibgiopangographene
  • 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

开发

此存储库主要分为两个分支:mastercratemaster包含尚未发布的代码,是新的开发发生的地方。 crate包含最后一个发布源代码,不应进行更新。

此存储库的结构如下

- crate/
   |
   |-- README.md
   |-- Gir.toml
   |-- Cargo.toml
   |-- src/
   |-- sys/

crate是一个“顶级”目录(例如,这里的“atk”或“gdk”)。每个crate包含以下内容:

  • README.md:关于crate本身的说明以及一些细节。
  • Cargo.toml:crate描述,由cargoRust使用。
  • Gir.tomlgir使用的配置,用于生成crate的大部分代码。
  • src:crate的源代码。
  • sys:C API的1:1绑定。

girgir-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