v0.9.0

Major Changes:

  • Optimized the zenoh plugin:

    • Added zenoh rpc backend;

    • The zenoh plugin now supports both network communication and shared memory communication;

    • Native zenoh configurations can be passed for richer customization;

  • Added third-party library asio; runtime::core no longer depends on boost, instead it depends on the standalone asio library to reduce dependencies;

  • Added aimrt_cli trans command to convert bag files recorded with the aimrt record_playback plugin into ros2 bag files;

  • Added Echo plugin for message echoing;

  • Added executor-based timers to facilitate scheduled tasks;

  • aimrt_py channel and rpc now support ros2 message types;

  • Added Proxy plugin for message forwarding;

Minor Changes:

  • Shortened file paths in some examples;

  • Optimized code structure by moving code from src/runtime/common/net to the new location src/common/net;

  • Upgraded jsoncpp to version 1.9.6 to resolve some cmake issues;

  • Added aimrt_py channel benchmark example;

  • Added aimrt_py rpc benchmark example;

  • The iceoryx plugin now checks for the existence of libacl before compiling; if not found, compilation is skipped;

  • Plugins providing RPC services now support specifying the service name;

  • Provided a one-click script to run examples and generate test reports;

  • Fixed the issue where aimrt_py multithreaded rpc calls could cause the server to crash probabilistically;

  • Added Context support for aimrt_py’s channel functionality;

  • Now supports installing aimrt::runtime::core;

  • Removed some unused protocols;

  • Supports custom log output formats;

  • Supports periodic log flushing;

  • The grpc plugin now supports ros2 messages and json serialization formats;

  • mqtt added configuration options to support ssl/tls one-way/two-way authentication encrypted transmission;

  • The mqtt plugin will automatically retry asynchronous connections when the broker is not started, and provides a reconnection interval configuration option;

  • The ros2 plugin supports custom rpc service names;

  • asio thread/strand executors now support choosing whether to use the system clock;