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_symboland write docs (#959)- Use
GDExtensionCallableCustomInfo2instead 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
Erris 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_symboland 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-3feature (#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::metaargument 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; fixDebugfor variants containing typed arrays (#853) - π Disallow
Exportif class doesn't inheritNodeorResource(#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
_methodinstead ofmethodin Godot docs (#918) - Implement the
safe_identstrategy for virtual call parameter identifier generation (#822)
- Fix
- FFI and memory safety
- Tooling and dependencies
- Math
Vecor3::sign()gives incorrect results due toi32conversion (#865)
RawGd: cache pointer to internal storage (#831)ClassNamenow dynamic and faster (#834)- Pass-by-ref for non-
Copybuiltins (backend) (#906)
- Builtin docs (impl blocks, navigation table, link to Godot) (#821)
- Add docs for
#[rpc](#949) - Overview about type conversions (#833)
- Document
godot::metaargument 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
unsafeingodot-ffi(#774)
- Map
Vector3i.Axisenum to builtinVector3Axis(#797) - Prevent
out!from actually formatting the input if disabled (#801) - Disable
main_thread_idassertion for Android debug build (#780) GdCell::borrow_mutshould block on main thread if shared ref exists (#787)
15 July 2024
- Add more
normalizedfunctions (#761) - Add conversion from
Vec<$Element>to$PackedArraytypes (#785) - Add
snappedto integer vectors (#768) - Add determinant to
Transform2D(#770) - Support
#[export(range = (radians_as_degrees, suffix=XX))](#783) - Add support for
nothreadsWasm builds (Godot 4.3+) (#794)
- Reorder compile errors for
#[derive(GodotClass)](#773) - Change
Globalto useOnce(#752) - Prevent global
CallErrortracker from growing indefinitely (#798)
- Change logic to disable
OpenXRfor iOS (#781) - Pointer is already
*const u32on aarch64 (#788) - Handle panics in virtual interface methods (#757)
- Document why
Basiscolumns area,b, andc(#776)
24 June 2024
Initial release on crates.io. See devlog article.