This document tracks changes of released library versions.
See also Pulse for recent activities.
Cutting-edge API docs of the master
branch are available here.
π indicates a breaking change. Deprecations are not marked breaking.
8 December 2024
#[godot_api(secondary)]
for multiple impl blocks (#927)DynGd<T, D>
smart pointer for Rust-side dynamic dispatch (#953, #958)Callable::from_local_fn()
+Callable::from_sync_fn()
(#965)- Add
Variant::object_id()
(#914)
#[gdextension]
macro: renameentry_point
->entry_symbol
and write docs (#959)- Use
GDExtensionCallableCustomInfo2
instead of deprecatedGDExtensionCallableCustomInfo
(#952) sys::short_type_name
, conversions and relaxedGodotType
(#957)- Clippy (elided lifetimes) + rustfmt (#956)
- Add test verifying that custom callables don't crash when
Err
is returned (#950) - Minor signal cleanup; prevent
#[signal]
from being used in secondary impl blocks (#964)
- Fix
#[godot_dyn]
causing error when implemented for two traits (#962) - Prevent abort on double-panic if single-threading check fails (#965)
#[gdextension]
macro: renameentry_point
->entry_symbol
and write docs (#959)- Helpful doc aliases:
func
,var
,init
, .. (#960)
15 November 2024
See devlog article for highlights.
- Godot 4.3 support in CI and
api-4-3
feature (#859) - π Drop support for Godot 4.0 (#820)
- π Ergonomic arguments
- Godot docs from RustDoc comments
- RPC attributes
- Add
#[rpc]
attribute to user-defined functions (#902)
- Add
- Registration APIs
- Enums
- Required virtual functions
- Conversions + operators
- Renames and removals
- π Remove deprecated symbols from before v0.1 (#808)
- Deprecate instance utilities in
godot::global
(#901) - Shorten
#[init(default = ...)]
to#[init(val = ...)]
(#844) #[class]
attribute: renamehidden
->internal
, deprecateeditor_plugin
(#884)- Cleanup around
godot::meta
argument conversions (#948) - Remove
to_2d()
+to_3d()
; clean upApiParam
(#943) - π Simplify property hint APIs (#838)
- Validation
- Fix validation for
api-*
mutual exclusivity (#809) - Validate that virtual extension classes require
#[class(tool)]
(#850) - Validate that editor plugin classes require
#[class(tool)]
(#852) - Best-effort checks for
Array<Integer>
conversions; fixDebug
for variants containing typed arrays (#853) - π Disallow
Export
if class doesn't inheritNode
orResource
(#839) - π Validate that Nodes can only be exported from Node-derived classes (#841)
- Fix validation for
- CI and tooling
- Code generation and Godot APIs
- Upstream follow-up
- Panics
- Refactoring
- Argument passing
- Godot doc generation from RustDoc
- Registration
- Fix
Array<T>
registered without element type (#836) - Virtual methods now take
Option<Gd<T>>
(unless whitelisted) (#883) - Make arrays exportable only when their inner type is exportable (#875)
- Display script-virtual methods as
_method
instead ofmethod
in Godot docs (#918) - Implement the
safe_ident
strategy for virtual call parameter identifier generation (#822)
- Fix
- FFI and memory safety
- Tooling and dependencies
- Math
Vecor3::sign()
gives incorrect results due toi32
conversion (#865)
RawGd
: cache pointer to internal storage (#831)ClassName
now dynamic and faster (#834)- Pass-by-ref for non-
Copy
builtins (backend) (#906)
- Builtin docs (impl blocks, navigation table, link to Godot) (#821)
- Add docs for
#[rpc]
(#949) - Overview about type conversions (#833)
- Document
godot::meta
argument conversions (#948) - Add a doc to point users to kwarg builders (#876)
- Resolve doc warning with global enums (#896)
- ReadMe update + clippy error (#929)
22 July 2024
- Add helpful error for renamed Wasm module (#799)
- More thoroughly document
unsafe
ingodot-ffi
(#774)
- Map
Vector3i.Axis
enum to builtinVector3Axis
(#797) - Prevent
out!
from actually formatting the input if disabled (#801) - Disable
main_thread_id
assertion for Android debug build (#780) GdCell::borrow_mut
should block on main thread if shared ref exists (#787)
15 July 2024
- Add more
normalized
functions (#761) - Add conversion from
Vec<$Element>
to$PackedArray
types (#785) - Add
snapped
to integer vectors (#768) - Add determinant to
Transform2D
(#770) - Support
#[export(range = (radians_as_degrees, suffix=XX))]
(#783) - Add support for
nothreads
Wasm builds (Godot 4.3+) (#794)
- Reorder compile errors for
#[derive(GodotClass)]
(#773) - Change
Global
to useOnce
(#752) - Prevent global
CallError
tracker from growing indefinitely (#798)
- Change logic to disable
OpenXR
for iOS (#781) - Pointer is already
*const u32
on aarch64 (#788) - Handle panics in virtual interface methods (#757)
- Document why
Basis
columns area
,b
, andc
(#776)
24 June 2024
Initial release on crates.io. See devlog article.