Rclcpp_async: Header-only C++20 async/await for ROS 2

Thanks for looking into it!

The main differences are:

rclcpp_async icey
Type Header-only Compiled library
Dependencies rclcpp only rclcpp + Boost (Hana) + FMT
Style Task<T> + async streams Promise<T, E> + reactive streams
Services Yes Yes
Actions Yes No
TF / Lifecycle No Yes

Both use co_await and work with the standard single-threaded executor. icey has a broader scope with TF, lifecycle, and message_filters integration. rclcpp_async is more minimal but covers actions and provides coroutine-aware sync primitives (Event, Mutex, Channel) and Python asyncio-style create_task + co_await for spawning and joining background tasks.

5 Likes