the rosbag2 repo is 85% cpp in github stats and the 11% that’s python seems to be pybind, not rclpy. I haven’t taken a deep dive into it though.
you are right.
the implementation details such as Recorder
is written in cpp, rosbag2_py
provides the type-hinting information for binary Python modules.
but ros2bag
package still depends on rclpy
, for example QoS configuration. (maybe that is not important for this context.)