Skip to content

Commit a56ee7f

Browse files
authored
Merge branch 'master' into jovan/script_instance_soundness
2 parents 4073a60 + 824cb6c commit a56ee7f

File tree

5 files changed

+24
-20
lines changed

5 files changed

+24
-20
lines changed

.github/other/public-docs-token.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
MTFBQUZNN0NBME9ONTgzUVd0Um13UV9QMkFnSWk4RVA3ZU44cXplampMQVZzTm5wSlNaYU84V0FmdjM4bmVDN3RJMllCVzZGNk5WQUw5NEpUTAo=
1+
MTFBQUZNN0NBMHpNWHlZeVBFZUl1bl9kdm5NOUV3RkZlVll6RVhNeGpvaHFVR1pyd1BSWUxjQ3cyYzFlUnZmR2VRRDZBUjJWT0NpdTRRSWVuUgo=

ReadMe.md

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,44 +9,45 @@ _**[Website]** | **[Book][book]** | **[API Docs]** | [Discord] | [Mastodon] | [T
99
[Godot] is an open-source game engine, whose version 4 has brought large-scale improvements.
1010
Its _GDExtension_ API allows integrating third-party languages and libraries.
1111

12-
> If you are looking for a Rust binding for Godot 3 (GDNative API), check out [`gdnative`].
12+
If you are looking for a Rust binding for Godot 3 (GDNative API), check out [`gdnative`].
1313

1414

1515
## Philosophy
1616

1717
The Rust binding is an alternative to GDScript, with a focus on type safety, scalability and performance.
1818

19-
The primary goal of gdext is to provide a _**pragmatic Rust API**_ for game developers.
19+
The primary goal of gdext is to provide a [**pragmatic Rust API**][philosophy] for game developers.
2020

2121
Recurring workflows should be simple and require minimal boilerplate. APIs are designed to be safe and idiomatic Rust wherever possible.
2222
Due to interacting with Godot as a C++ engine, we sometimes follow unconventional approaches to provide a good user experience.
2323

2424

2525
## Development status
2626

27-
The gdext library has evolved a lot during 2023 and is now in a usable state for smaller projects.
28-
However, it is still in an early stage and there are certain things to keep in mind.
27+
The gdext library has evolved a lot during 2023 and 2024 and is now in a usable state for smaller projects.
28+
However, there are still certain things to keep in mind.
2929

30-
> **Warning**
30+
> [!WARNING]
3131
> The public API introduces breaking changes from time to time. Most of these are motivated by new features and
3232
> improved ergonomics for existing ones. See also [API stability] in the book.
3333
3434
**Features:** While most Godot features are available, some less commonly used ones are missing. See [#24] for an up-to-date overview.
35-
At this point, there is **no** support for Android, iOS or WASM. Contributions are very welcome!
35+
At this point, there is **no** support for [Android] or [iOS], and [WASM] is experimental. Contributions are very welcome!
3636

3737
**Bugs:** Most undefined behavior related to the FFI layer has been ironed out, but there may still be occasional safety issues. Apart from that,
3838
new additions to the library are typically not feature-complete from the start, but become more robust with feedback and testing over time.
39-
To counter bugs, we have an elaborate CI suite including clippy, unit tests, engine integration tests and memory sanitizers.
39+
To counter bugs, we have an elaborate CI suite including clippy, unit tests, engine integration tests and memory sanitizers. Even hot-reload is tested!
4040

4141

4242
## Getting started
4343

4444
To dive into Rust development with gdext, check out [the godot-rust book][book]. The book is still under construction,
45-
but already includes a tutorial to set up a simple example.
45+
but already covers a Hello World setup as well as several more in-depth chapters.
4646

4747
To consult the API reference, have a look at the online [API Docs].
4848

49-
Furthermore, we provide a small example game in the [`examples/dodge-the-creeps` directory][dodge-the-creeps].
49+
Furthermore, we provide a small example game in the [`examples/dodge-the-creeps` directory][dodge-the-creeps].
50+
The example [`examples/hot-reload`][hot-reload] demonstrates hot-reloading in the Godot editor.
5051

5152
If you need help, join our [Discord] server and ask in the `#help-gdext` channel!
5253

@@ -65,15 +66,20 @@ those changes available (and only those, no surrounding code).
6566
Contributions are very welcome! If you want to help out, see [`Contributing.md`](Contributing.md) for some pointers on getting started.
6667

6768
[#24]: https://github.com/godot-rust/gdext/issues/24
68-
[`gdnative`]: https://github.com/godot-rust/gdnative
6969
[API Docs]: https://godot-rust.github.io/docs/gdext
7070
[API stability]: https://godot-rust.github.io/book/toolchain/compatibility.html#rust-api-stability
71-
[book]: https://godot-rust.github.io/book
71+
[Android]: https://github.com/godot-rust/gdext/issues/470
7272
[Discord]: https://discord.gg/aKUCJ8rJsc
73-
[dodge-the-creeps]: examples/dodge-the-creeps
7473
[Godot]: https://godotengine.org
7574
[Mastodon]: https://mastodon.gamedev.place/@GodotRust
76-
[mpl]: https://www.mozilla.org/en-US/MPL
7775
[Sponsor]: https://github.com/sponsors/Bromeon
7876
[Twitter]: https://twitter.com/GodotRust
77+
[WASM]: https://godot-rust.github.io/book/toolchain/export-web.html
7978
[Website]: https://godot-rust.github.io
79+
[`gdnative`]: https://github.com/godot-rust/gdnative
80+
[book]: https://godot-rust.github.io/book
81+
[dodge-the-creeps]: examples/dodge-the-creeps
82+
[hot-reload]: examples/hot-reload
83+
[iOS]: https://github.com/godot-rust/gdext/issues/498
84+
[mpl]: https://www.mozilla.org/en-US/MPL
85+
[philosophy]: https://godot-rust.github.io/book/contribute/philosophy.html

examples/hot-reload/godot/test/orchestrate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def send_udp():
3838

3939

4040
def receive_udp() -> bool:
41-
timeout = 20
41+
timeout = 30
4242
udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
4343
udp.bind(("localhost", 1338))
4444

godot-macros/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ godot = { path = "../godot" }
2222
proc-macro2 = "1.0.63"
2323
quote = "1.0.29"
2424

25-
venial = { git = "https://github.com/PoignardAzur/venial", rev = "32ade31408eb0ffba4ce7b02d3cdb2e78b496644" }
26-
#venial = "0.5"
25+
venial = "0.6"
2726

2827
[build-dependencies]
2928
godot-bindings = { path = "../godot-bindings" } # emit_godot_version_cfg

godot/src/lib.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
//!
1414
//! Godot is written in C++, which doesn't have the same strict guarantees about safety and
1515
//! mutability that Rust does. As a result, not everything in this crate will look and feel
16-
//! entirely "rusty".
16+
//! entirely "rusty". See also [Philosophy](https://godot-rust.github.io/book/contribute/philosophy.html).
1717
//!
1818
//! Traits such as `Clone`, `PartialEq` or `PartialOrd` are designed to mirror Godot semantics,
1919
//! except in cases where Rust is stricter (e.g. float ordering). Cloning a type results in the
@@ -43,8 +43,7 @@
4343
//! from [`RefCounted`][crate::engine::RefCounted].
4444
//!
4545
//! These types may share their underlying data between multiple instances: changes to one
46-
//! instance are visible in another. Think of them as `Rc<RefCell<...>>` but without any runtime
47-
//! borrow checking.
46+
//! instance are visible in another. They are conceptually similar to `Rc<RefCell<...>>`.
4847
//!
4948
//! Since there is no way to prevent or even detect this sharing from Rust, you need to be more
5049
//! careful when using such types. For example, when iterating over an `Array`, make sure that

0 commit comments

Comments
 (0)