4个版本

0.1.3 2024年7月22日
0.1.2 2024年7月15日
0.1.1 2024年6月24日
0.0.0 2022年3月28日

#39#godot

Download history 276/week @ 2024-06-23 201/week @ 2024-06-30 211/week @ 2024-07-07 346/week @ 2024-07-14 344/week @ 2024-07-21 134/week @ 2024-07-28 135/week @ 2024-08-04 73/week @ 2024-08-11 168/week @ 2024-08-18

525 每月下载量
5 个Crate中使用(通过 godot

MPL-2.0 许可证

215KB
4K SLoC

logo.png

Rust对Godot 4的绑定

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

gdext 是一个库,用于将Rust语言与Godot 4集成。

Godot 是一个开源游戏引擎,专注于高效和全面的2D和3D体验。
它的 GDExtension API 允许集成第三方语言和库。

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

哲学

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

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

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

开发状态

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以获取一些入门指南。


lib.rs:

godot-rust的内部crate

不要直接依赖这个crate,而是使用godot crate。不提供SemVer或其他保证。

依赖关系

~0.2–1.7MB
~26K SLoC