1个不稳定版本

0.0.0 2023年12月5日

#22#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的惯例。由于与C++引擎Godot交互,我们有时会采取非常规方法以提供良好的用户体验。

开发状态

gdext库在2023年和2024年间经历了很大的变化,现在对于小型项目来说是可用的状态。然而,还有一些事情需要考虑。

[!WARNING]
公共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以获取一些入门指南。

无运行时依赖