Release Date

This is the last scheduled release in the v5 series of PraxisCORE and PraxisLIVE as we concentrate on v6 for release later this year. There are some major updates to Ref types and handling, an Async.Queue for handling async calls, and various deprecations for things that will no longer be supported in v6.


  • Major updates to Ref, including reference ports and a publish / subscribe mechanism for sharing references from containers to child components.
    • Added Ref::set, Ref::setAsync, Ref::orElse and Ref::onChange methods. The existing async support in Ref is deprecated and rewritten to use the new method.
    • Added @Ref.Publish and @Ref.Subscribe to be used on injected Ref fields in parent and children respectively. References are automatically updated, and changes can be listened to using Ref::onChange.
    • Added support for reference ports - @In(1) Ref.In<T> in and @Out(1) Ref<T> out. The input type allows to access the list of connected values, and automatically updates on connections or changes to the output reference.
    • Updated semantics for Ref::bind which can now be configured prior to initialization, and will update on reference changes.
  • Added an injectable queue for Async values - @Inject Async.Queue<T> queue. Supports binding actions to happen on completion and limiting the queue size. For use with async returns from ask() and async().
  • Improvements to library support with a PackageURL parsing utility and better support for transient dependencies provided by the runtime itself.
  • Added a .supported-types property to containers. This has minimal use in v5, but is important in development if some features in v6.
  • Various deprecations, including serializable properties, Property::values and Input::values methods, and PVector (from core types, but some supported will remain in video types).


  • No changes in the IDE in this release.