Release notes

0.7.0

  • Kanzi Rust API now works with Kanzi 3.9.14.

  • You can now directly compare shared and weak objects of different types.

  • Enhanced message handler interface: the provided closure now receives strongly typed message arguments.

  • Renamed AbstractPropertyType::find_raw to AbstractPropertyType::find.

  • Renamed AbstractMessageType::find_raw to AbstractMessageType::find.

  • Updated AbstractDataObject casting to use downcast methods in ObjectConstraint trait instead of custom cast methods.

0.6.0

  • Kanzi Rust API now works with Kanzi 3.9.13.

  • Implemented a brand new interface for bridging Rust and C++ application code.

  • Added templates for application and plugin code for Rust.

  • Added registration of custom loggers from Rust.

  • Improved error messages for Kanzi exceptions caught by Rust.

  • Improved compiler error messages resulting from macro usage.

  • Removed all as-conversions from the Kanzi crate.

0.5.0

  • Kanzi Rust API now works with Kanzi 3.9.12.

  • Implemented a procedural macro to enable inheritance from C++ classes.

  • Added support for defining crates as dynamically loaded modules.

  • Added a new plugin example with inheritance: XmlDataSource (as a part of ./examples/hello_rust).

  • Introduced an interface for setting a global callback Domain::set_error_callback which can be used for tracking unhandled exceptions.

  • Standardized all callback function signatures to return kanzi::Result.

  • Replaced all instances of the unwrap method with except for improved error handling.

  • Added Location context for kanzi::Error.

  • Introduced interfaces for ListBoxConcept, Trajectory, and NamedIntervalProfiler.

  • Added support for binding interfaces: AbstractBinding, Binding, TwoWayBinding, and ToSourceBinding.

  • Raised the minimum supported Rust compiler version to 1.83.

  • Removed unmaintained dependencies: paste and json.

  • Increased overall test coverage to 80%.

0.4.0

  • Kanzi Rust API now works with Kanzi 3.9.12.

  • Provide interface for defining custom resource loaders.

  • Provide interface for creating textures.

  • Provide interface for reloading custom resources (can only be used with GPU resources).

  • Provide macro for defining custom property and message types.

  • Provide interface for ListBoxConcept.

  • Provide macro and traits for inheriting from DataSource, NodeComponent` and other classes.

  • Provide interface for AbstractBinding.

  • Provide interface for Viewport2D.

0.3.0

  • Kanzi Rust API now works with Kanzi 3.9.11.

  • Provide safe iterator methods which eagerly collect all values of an iterator into Vec.

  • Provide KanziString and KanziStr types for better interaction with C++.

  • Provide methods for subscriptions to dispatched messages on Node types.

  • Update recoverable function calls to return Result<Option<{type}>>.

  • Update how Kanzi Rust API is registered in Kanzi to properly handling crate uninitialization.

  • Provide Weak objects and do not allocate strong references in API calls by default.

  • Provide ThreadObject for sharing state with non-Kanzi threads.

  • Update API calls to cast returned objects to user defined types. Also provide *_raw functions in case casting is undesirable.