v0.7.0

Major Changes:

  • Support direct module creation in App mode;

  • [Breaking Change] Remove channel’s context manager, now you can directly create a new context;

  • [Breaking Change] Remove rpc’s context manager, now you can directly create a new context;

  • [Breaking Change] Renamed the original coroutine RPC Proxy/Service interfaces to CoProxy/CoService, old naming is no longer supported;

  • [Breaking Change] All plugin binary files now have the “aimrt_” prefix;

  • [Breaking Change] Removed async_wrapper.h;

  • [Breaking Change] Removed aimrt::util::Function<R(Args…)>, now aimrt::util::Function can only be used for encapsulating C interface Functions, please use std::function for normal scenarios;

  • [Breaking Change] Renamed disable_module -> disable_modules in pkg configuration; and added enable_modules configuration.

  • [Breaking Change] Renamed rpc_filter.h -> rpc_co_filter.h, renamed RpcHandle/RpcFilter/FilterManager -> CoRpcHandle/CoRpcFilter/CoFilterManager.

  • Optimized the rpc context part in Python interfaces, upgrading the interface style to align with the CPP version;

  • Local rpc backend now supports timeout functionality;

  • Added framework-side filter functionality for rpc/channel;

  • Added log_control_plugin:

    • Provides runtime interfaces for viewing and modifying log levels;

    • Added related examples;

    • Added related documentation;

  • Added channel publisher proxy and subscriber proxy, now you can use typed proxies to publish/subscribe to topics;

  • Rebuilt the documentation system based on sphinx;

  • Added guard_thread as the default logging thread;

  • Moved lcm and sm plugins to separate repositories;

  • Added opentelemetry_plugin:

    • Provides trace capabilities for rpc and channel;

Minor Changes:

  • Optimized the output of rpc status Tostring method;

  • Added Tostring method for rpc context and channel context;

  • rpc context can now set/get func name;

  • ros2_plugin:

    • ros2 RPC/Channel now supports QOS configuration;

    • Added related examples;

    • Improved related documentation;

    • Fixed some minor bugs;

  • mqtt_plugin:

    • Fixed some issues with mqtt plugin reconnection;

    • mqtt rpc backend added the ability to specify mqtt_client_id;

  • Fixed a bug in RPC Server Handle lifecycle;

  • Fixed garbled text issue when using std::format as log format method;

  • Fixed a bug in environment variable substitution in configuration files;

  • Upgraded fmt library from v9.1.0 to v10.2.1, and changed the reference method to header-only;

  • Upgraded tbb library from v2021.12.0-rc2 to v2021.13.0;

  • Optimized the example system, simplified example configurations;

  • Added some unit tests;

  • Modified names of several code generation plugins;

  • Added simple_thread type executor;

  • Added option to package aimrt-py;

  • Added unused configuration check functionality;

  • aimrt_main added option to specify runtime duration;