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;