Skip to content

Commit 3f4399c

Browse files
committed
Update ReadMe + version check for Godot 3.5.1
1 parent 3e400c9 commit 3f4399c

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

README.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,27 @@
1212

1313
## Stability
1414

15-
The bindings cover most of the exposed API of Godot 3.4, and are being used on a number of projects in development, but we still expect non-trivial breaking changes in the API in the coming releases. godot-rust adheres to [Cargo's semantic versioning](https://doc.rust-lang.org/cargo/reference/semver.html).
15+
The bindings cover most of the exposed API of Godot 3.5, and are being used on a number of projects in development, but we still expect non-trivial breaking changes in the API in the coming releases. godot-rust adheres to [Cargo's semantic versioning](https://doc.rust-lang.org/cargo/reference/semver.html).
1616

1717
Minimum supported Rust version (MSRV) is **1.56**. We use the Rust 2021 Edition.
1818

1919
## Engine compatibility
2020

21-
We are committed to keeping compatibility with the latest stable patch releases of all minor versions of the engine, starting from Godot 3.2:
22-
* Godot 3.4 (works out-of-the-box)
23-
* Godot 3.3 (needs feature `custom-godot`)
24-
* Godot 3.2 (needs feature `custom-godot`)
21+
Due to GDNative API not strictly following SemVer and some concepts not mapping 1:1 to Rust (default parameters),
22+
it is difficult for a godot-rust version to remain compatible with multiple Godot versions simultaneously.
2523

26-
For versions 3.2 and 3.3, some extra steps are needed, see _Custom builds_ below.
24+
However, we support the latest stable Godot 3 minor release out-of-the-box, and allow to easily use custom engine
25+
versions using the `custom-godot` feature flag (see [below](#Custom builds)).
2726

28-
The bindings do _**not**_ support in-development Godot 4 versions at the moment. Support is planned as the native extensions become more stable.
27+
Compatibility list:
28+
29+
* Godot 3.5.1 (works with gdnative 0.11)
30+
* Godot 3.4 (works with gdnative 0.10, custom build for 0.11)
31+
* Godot 3.3 (custom build)
32+
* Godot 3.2 (custom build)
33+
34+
The bindings do _**not**_ support in-development Godot 4 versions.
35+
A GDExtension binding is planned.
2936

3037

3138
## Getting started
@@ -38,7 +45,7 @@ This is the recommended way of using godot-rust. After `bindgen` dependencies an
3845

3946
```toml
4047
[dependencies]
41-
gdnative = "0.10.1"
48+
gdnative = "0.11"
4249

4350
[lib]
4451
crate-type = ["cdylib"]
@@ -59,7 +66,8 @@ crate-type = ["cdylib"]
5966

6067
### Custom builds
6168

62-
To use the bindings with a different Godot version or a custom build of the engine, see [Custom Godot builds](https://godot-rust.github.io/book/advanced-guides/custom-godot.html) in the user guide.
69+
To use the bindings with a different Godot version or a custom build of the engine, see
70+
[Custom Godot builds](https://godot-rust.github.io/book/advanced-guides/custom-godot.html) in the user guide.
6371

6472
### Async/yield support
6573

gdnative-core/src/init/macros.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ macro_rules! godot_nativescript_init {
4242
let info = engine.get_version_info();
4343

4444
if info.get("major").expect("major version") != Variant::new(3)
45-
|| info.get("minor").expect("minor version") != Variant::new(4) {
45+
|| info.get("minor").expect("minor version") != Variant::new(5)
46+
|| info.get("patch").expect("patch version") < Variant::new(1) {
4647
let string = info.get("string").expect("version str").to::<String>().expect("version str type");
4748
gdnative::log::godot_warn!(
48-
"This godot-rust version is only compatible with Godot 3.4.x; detected version {}.\n\
49+
"This godot-rust version is only compatible with Godot >= 3.5.1 and < 3.6; detected version {}.\n\
4950
GDNative mismatches may lead to subtle bugs, undefined behavior or crashes at runtime.\n\
5051
Apply the 'custom-godot' feature if you want to use current godot-rust with another Godot engine version.",
5152
string

0 commit comments

Comments
 (0)