v0.7.0

Major Changes:

  • In App mode, modules can now be created directly;

  • [Breaking Change] Removed the context manager for channel; you can now directly new a context;

  • [Breaking Change] Removed the context manager for rpc; you can now directly new a context;

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

  • [Breaking Change] All plugin binaries now have an “aimrt_” prefix;

  • [Breaking Change] Removed async_wrapper.h;

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

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

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

  • Optimized the rpc context part of the Python interface, aligning its style with the CPP version;

  • local rpc backend now supports timeout;

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

  • Added log_control_plugin:

    • Provides runtime interfaces to view and modify log levels;

    • Added related examples;

    • Added related documentation;

  • Added channel publisher proxy and subscriber proxy; you can now use typed proxies to publish and 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 tracing capabilities for rpc and channel;

Minor Changes:

  • Optimized the output of the rpc status Tostring method;

  • Added Tostring methods for rpc context and channel context;

  • rpc context can now set/get func name;

  • ros2_plugin:

    • ros2 RPC / Channel now supports configurable QOS;

    • Added related examples;

    • Improved related documentation;

    • Fixed some minor bugs;

  • mqtt_plugin:

    • Fixed some issues with mqtt plugin reconnection after disconnection;

    • mqtt rpc backend added the ability to specify mqtt_client_id;

  • Fixed a bug in the lifecycle of RPC Server Handle;

  • Fixed garbled characters when using std::format as the log format method;

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

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

  • Upgraded tbb library, v2021.12.0-rc2 -> v2021.13.0;

  • Optimized the example system, simplifying example configurations;

  • Added some unit tests;

  • Renamed several code generation plugins;

  • Added simple_thread type executor;

  • Added an option to package aimrt-py;

  • Added an unused configuration check feature;

  • aimrt_main added an option to specify runtime duration;