24 个版本

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 日

#1109GUI

Download history 13920/week @ 2024-05-02 11457/week @ 2024-05-09 10289/week @ 2024-05-16 10292/week @ 2024-05-23 12112/week @ 2024-05-30 11943/week @ 2024-06-06 14335/week @ 2024-06-13 12415/week @ 2024-06-20 10604/week @ 2024-06-27 9925/week @ 2024-07-04 11746/week @ 2024-07-11 15263/week @ 2024-07-18 14774/week @ 2024-07-25 13674/week @ 2024-08-01 14075/week @ 2024-08-08 13308/week @ 2024-08-15

58,354 每月下载量
140 个 crate 中使用 (直接使用 18 个)

MIT 许可证

245KB
5K SLoC

gtk4-rs CI

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

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

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

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

有关每个crate的更多信息,请参阅其目录中的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》仓库之外的crate时,您需要小心,确保它们不会引入与核心crate(如《glib-rs》)不兼容的版本。

使用GTK4 Rust绑定构建

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

使用gtk4-rs构建的库

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

贡献

绑定由两部分组成

  • 使用《gir》自动生成的部分
  • 手动部分

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

python3 ./generator.py

如果您还没有这样做,请在以下操作之前检查所有子模块

$ git submodule update --checkout

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

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

依赖

~1.3–8.5MB
~70K SLoC