21 个版本

0.9.0 2024年7月10日
0.8.1 2024年3月7日
0.7.2 2023年8月12日
0.7.0 2023年7月23日
0.2.0 2021年7月12日

#1326 in GUI

Download history 1548/week @ 2024-05-02 1566/week @ 2024-05-09 1272/week @ 2024-05-16 1628/week @ 2024-05-23 1433/week @ 2024-05-30 1351/week @ 2024-06-06 1390/week @ 2024-06-13 1282/week @ 2024-06-20 1127/week @ 2024-06-27 1208/week @ 2024-07-04 1530/week @ 2024-07-11 1642/week @ 2024-07-18 1263/week @ 2024-07-25 1501/week @ 2024-08-01 1584/week @ 2024-08-08 1111/week @ 2024-08-15

5,687 每月下载量
7 个 Crates 中使用 (通过 gdk4-x11)

MIT 许可证

265KB
5.5K SLoC

gtk4-rs CI

一组旨在提供完整 GTK 4 绑定的 Crates。此仓库包含所有 GTK 4 的 "核心" Crates。

  • GTK
  • GDK:一个中间层,将 GTK 与窗口系统的细节隔离开。
    • GDK Wayland:特定于 Wayland 后端的函数。
    • GDK Win32:特定于 Windows 后端的函数。
    • GDK X11:特定于 X 后端的函数。
  • GSK:一个中间层,将 GTK 与 OpenGL 或 Vulkan 实现的细节隔离开。

GTK 4 Crates 还依赖于平台的其他库,例如

这些与 GTK 3 和 GStreamer 绑定共同,是 gtk-rs-core 仓库的一部分。

有关每个 Crates 的更多信息,请参阅它们目录中的 README.md 文件。

最低支持的 Rust 版本

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

文档

生态系统

《gtk4-rs》仓库包含了GTK 4的Rust包。但是,有一个庞大的《GObject》库生态系统,其中许多库都基于《gtk-rs》中包含的工具集提供了Rust绑定。特别值得注意的包括

  • gtk-rs-core - 对一些核心库的绑定,如《glib》、《gio》、《pango》、《graphene》
  • gstreamer-rs - 对GStreamer媒体框架的绑定

此外,各种库的Rust绑定托管在《GNOME的GitLab》实例上,可以在https://gitlab.gnome.org/World/Rust找到。

当使用不属于《gtk4-rs》仓库的包时,您需要小心,确保它们不会引入与核心包(如《glib-rs》)不兼容的版本。

使用GTK4 Rust绑定构建

使用gtk4-rs构建的应用程序小列表

使用gtk4-rs构建的库

  • Relm4:受Elm启发的惯用GUI库

贡献

绑定由两部分组成

  • 使用gir自动生成
  • 手动部分

自动生成部分可以使用generator.py脚本生成

python3 ./generator.py

如果还没有这样做,请通过以下方式检查所有子模块

$ git submodule update --checkout

除了《gtk4-macros》之外的所有包都遵循以下结构

   ./crate 
   ├── Gir.toml
   ├── README.md
   ├── src
   │   ╰── auto
   ├── sys
   ╰── tests
  • README.md:对包本身的说明以及一些细节(如有)。
  • Gir.toml:由《gir》用于生成大部分代码。
  • src:包含包的源代码。
  • src / auto:包含源代码的自动生成部分。
  • sys:包含与C API的1:1绑定。

依赖项

~1.3–8.5MB
~70K SLoC