@@ -324,6 +324,46 @@ e.g. `Option<Entity>` will not consume additional space.
324
324
[ hecs ] : https://github.com/Ralith/hecs
325
325
[ hecs-changelog ] : https://github.com/Ralith/hecs/blob/master/CHANGELOG.md#071
326
326
327
+ ### [ godot-rust] ( https://github.com/godot-rust/godot-rust )
328
+
329
+ ![ module before/after] ( godot-rust-modules.png )
330
+
331
+ godot-rust ([ GitHub] [ gd-github ] , [ Discord] [ gd-discord ] , [ Twitter] [ gd-twitter ] )
332
+ is a Rust library that provides bindings for the Godot game engine.
333
+
334
+ November has been a month of refactoring for godot-rust. The API was cleaned up
335
+ across different locations, reducing confusion and making the library more
336
+ accessible:
337
+
338
+ - The module simplification ([ #811 ] [ gd-811 ] ) continued initial efforts on the
339
+ module structure, such as shorter paths and avoidance of redundant re-exports.
340
+ Some differences between v0.9.3 and now can be seen in the above picture.
341
+ - Several core symbols were renamed for consistency ([ #815 ] [ gd-815 ] ):
342
+ ` RefInstance ` -> ` TInstance ` and ` TypedArray ` -> ` PoolArray ` , among others.
343
+ - Another refactoring affects the ` Variant ` conversion methods ([ #819 ] [ gd-819 ] ).
344
+ Instead of ` Variant::to_i64() ` which may silently fail and return a default
345
+ value (Godot behavior), the recommended method is now ` Variant::to<T>() ` . This
346
+ enables genericity and is more idiomatic in Rust, returning an ` Option ` to
347
+ indicate success or failure.
348
+
349
+ As a binding to a C++ library, one topic godot-rust has to deal with is the use
350
+ of ` unsafe ` , which sometimes boils down to a trade-off between safety and
351
+ ease-of-use. Even though Rust provides basic guidelines, there are different
352
+ philosophies on their execution, see [ The CXX Debate] [ gd-cxx ] for an example.
353
+ To discuss how APIs interacting with Godot can as ergonomic as possible while
354
+ preserving safety, [ issue #808 ] [ gd-808 ] was opened.
355
+
356
+ [ gd-808 ] : https://github.com/godot-rust/godot-rust/pull/808
357
+ [ gd-811 ] : https://github.com/godot-rust/godot-rust/pull/811
358
+ [ gd-815 ] : https://github.com/godot-rust/godot-rust/pull/815
359
+ [ gd-819 ] : https://github.com/godot-rust/godot-rust/pull/819
360
+
361
+ [ gd-cxx ] : https://steveklabnik.com/writing/the-cxx-debate
362
+
363
+ [ gd-github ] : https://github.com/godot-rust/godot-rust
364
+ [ gd-discord ] : https://discord.com/invite/FNudpBD
365
+ [ gd-twitter ] : https://twitter.com/GodotRust
366
+
327
367
## Popular Workgroup Issues in Github
328
368
329
369
<!-- Up to 10 links to interesting issues -->
0 commit comments