1 个不稳定版本

0.0.0 2023 年 3 月 9 日

35#gd-native

MPL-2.0 许可证

1KB

logo.png

Godot 4 的 Rust 绑定

网站 | 书籍 | API 文档 | Discord | Mastodon | Twitter | 赞助

gdext 是一个将 Rust 语言绑定到 Godot 4 的库。

Godot 是一个开源的游戏引擎,其第 4 版带来了大规模的改进。
它的 GDExtension API 允许集成第三方语言和库。

如果您正在寻找 Godot 3(GDNative API)的 Rust 绑定,请查看 gdnative

哲学

Rust 绑定是 GDScript 的替代品,重点关注类型安全、可扩展性和性能。

gdext 的主要目标是提供一个 实用的 Rust API 以供游戏开发者使用。

重复的工作流程应该简单,并且需要最少的样板代码。API 尽可能设计成安全且符合 Rust 习惯。由于与 Godot 作为 C++ 引擎交互,我们有时会采取非常规的方法来提供良好的用户体验。

开发状态

gdext 库在 2023 年和 2024 年发展了很多,现在可以用于较小规模的项目。然而,还有一些事情需要注意。

[!警告]
公共 API 有时会引入破坏性更改。其中大部分是由新功能和现有功能的改进所驱动。请参阅书籍中的 API 稳定性

功能:虽然大多数 Godot 功能都可用,但一些不太常用的功能缺失。请参阅 #24 以获取最新概述。目前,对 AndroidiOS 的支持尚不存在,并且 WASM 是实验性的。欢迎贡献!

错误:大多数与 FFI 层相关的未定义行为已得到解决,但仍可能偶尔出现安全问题。除此之外,库的新增功能通常一开始并不完整,但随着反馈和测试的进行而变得更加健壮。为了对抗错误,我们有一个包括 clippy、单元测试、引擎集成测试和内存清理器的详细 CI 套件。甚至热重载也进行了测试!

入门

要使用gdext深入Rust开发,请查看godot-rust书籍。本书仍在建设中,但已涵盖Hello World设置以及几个更深入的章节。

要查阅API参考,请查看在线的API文档

此外,我们在examples/dodge-the-creeps目录中提供了一个小型示例游戏。
示例examples/hot-reload展示了在Godot编辑器中进行热重载。

如果您需要帮助,请加入我们的Discord服务器,并在#help-gdext频道提问!

许可协议

我们使用Mozilla公共许可证2.0。MPL试图在宽松(MIT、Apache、Zlib)和版权许可(GPL、LGPL)之间找到平衡。

该许可协议提供了很多自由:您可以商业使用该库并保持自己的代码为闭源,即游戏开发不受限制。主要条件是如果您修改gdext 自身,则必须提供这些更改(以及仅这些,没有周围的代码)。

贡献

欢迎贡献!如果您想帮忙,请参阅Contributing.md以获取一些入门指南。

无运行时依赖