#gtk #gnome #ffi #gdk-pixbuf

sys gdk-pixbuf-sys

libgdk_pixbuf-2.0 的 FFI 绑定

28 个版本 (15 个重大更改)

0.20.1 2024 年 8 月 12 日
0.20.0 2024 年 7 月 10 日
0.19.8 2024 年 6 月 19 日
0.19.0 2024 年 2 月 4 日
0.2.1 2015 年 10 月 20 日

468Unix API 中排名

Download history 63070/week @ 2024-04-26 64326/week @ 2024-05-03 59768/week @ 2024-05-10 59200/week @ 2024-05-17 59873/week @ 2024-05-24 64306/week @ 2024-05-31 55476/week @ 2024-06-07 61801/week @ 2024-06-14 58440/week @ 2024-06-21 61225/week @ 2024-06-28 55987/week @ 2024-07-05 60502/week @ 2024-07-12 61403/week @ 2024-07-19 67973/week @ 2024-07-26 67569/week @ 2024-08-02 60066/week @ 2024-08-09

每月下载量 266,437
用于 658 个crate(直接使用31个)

MIT 许可证

1MB
26K SLoC

gtk-rs-core CI

gtk-rs 组织旨在提供基于 GObject 的库的 Rust 安全绑定。您可以在 https://gtk-rs.org 上了解更多信息。

此仓库包含 gtk-rs 组织的所有“核心”crate。有关每个crate的更多信息,请参阅它们目录中的 README.md 文件。

最低支持的 Rust 版本

目前,最低支持的 Rust 版本是 1.70.0

文档

生态系统

gtk-rs-core 仓库包含基于 GObject 的基础库的 Rust crate。然而,有一个庞大的 GObject 库生态系统,其中许多库基于 gtk-rs 中包含的工具进行 Rust 绑定。特别值得注意的包括

此外,各种库的 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.toml:由 gir 使用以生成大多数 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

依赖项

~0–7.5MB
~42K SLoC