Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
humble

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
jazzy

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
kilted

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
rolling

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

No version for distro github showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
humble

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
humble

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
iron

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
humble

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosx_introspection package from rosx_introspection repo

rosx_introspection

ROS Distro
humble

Package Summary

Version 2.1.0
License MIT
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Deserialize any ROS message, without compilation time information.
Checkout URI https://github.com/facontidavide/rosx_introspection.git
VCS Type git
VCS Version master
Last Updated 2026-02-21
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Parse any ROS/ROS2 message without compile-time information

Maintainers

  • Davide Faconti

Authors

  • Davide Faconti

ROS X Introspection

Unified successor of the following libraries:

The library compiles either using:

  • ROS1 (catkin),
  • ROS2 (colcon/ament) or
  • without any ROS dependency (vanilla cmake).

To parse any ROS message at runtime, it requires:

  • The name of the type (for instance “sensors_msgs/JointState”)
  • The definition of the type (for instance this one),
  • The raw memory buffer to be deserialized into individual key/values pairs.

The raw memory buffer is usually obtained by:

Python binding

Compilation instructions:

cmake -S. -B build_python -DCMAKE_BUILD_TYPE=Release -DROSX_PYTHON_BINDINGS=ON
cmake --build build_python

If you have a rosbag (MCAP file) you can test it with this command

PYTHONPATH=build_python/python python3 python/mcap_ros_parser.py path_to_your_rosbag.mcap

Note that we are providing the folder where the dynamic library is using PYTHONPATH.

CHANGELOG

Changelog for package rosx_introspection

2.1.0 (2026-02-21)

  • Fix multiple bugs in serialization, deserialization, and JSON handling

    • Fix missing throw in ROS_Deserializer::deserialize for unsupported types
    • Fix NanoCDR_Deserializer::deserializeByteSequence crash on empty sequences
    • Fix ROS_Serializer buffer resize logic and UB (const-cast, type-punning)
    • Fix Tree::find using &_root instead of _root.get() on unique_ptr
    • Fix msgpack pointer invalidation after vector resize for large messages
    • Fix blob detection in deserialize() (was restricted to OTHER type only)
    • Fix deserializeIntoJson blob skip not advancing the deserializer

    - Fix serializeFromJson: add JSON parse error checking, type-safe value reading with range validation, proper null handling for missing fields

    • Add complete ROS_Serializer implementation (serialize, serializeString, etc.)

    - Add comprehensive test coverage for all fixes Co-Authored-By: Claude Opus 4.6 <<noreply@anthropic.com>>

  • Merge pull request #29 from agxeed/fix/time-duration-nsec-serialization fix: correct nsecs duration serialization

  • Merge pull request #22 from amarburg/bugfix_ament_export_testing_dependencies Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING is true

  • Merge pull request #27 from jorritolthuis/msgpack_cpp Make convertToMsgPack() available in C++

  • Merge pull request #30 from agxeed/fix/compiler-warnings fix: compiler warnings

  • Merge pull request #32 from konsim83/feature/replace_rosbag2_cpp_with_rclcpp Use rclcpp type support instead of rosbag2_cpp

  • fix: compiler warnings

  • fix: correct nsecs duration serialization

  • Make convertToMsgPack() available in C++

  • Add sensor_msgs, geometry_msgs as ament dependencies when BUILD_TESTING

  • remove ament_target_dependencies

  • Contributors: Davide Faconti, Jorrit Olthuis, Konrad Simon, Rein Appeldoorn, admin

2.0.1 (2025-10-01)

  • Merge pull request #21 from bryzhao/fix/scikit-build-core-compatibility Fix CMakeLists to support scikit-build-core installations
  • Fix CMakeLists to support scikit-build-core installations
  • Merge pull request #20 from nealtanner/bugfix/mac-compliation fix compilation errors on mac
  • replace sprintf with snprintf
  • inline vs constexpr
  • Contributors: Bryan Zhao, Davide Faconti, Neal Tanner

2.0.0 (2025-09-24)

  • optionally remove JSON support
  • new formatting
  • fix memory and add README
  • add python binding
  • NanoCDR
  • Merge pull request #16 from traversaro/patch-1 Add missing include of functional header in message_definition_cache.cpp
  • Fix issue #13
  • Merge pull request #11 from valgur/bugfix/clang Fix ros_parser.cpp compilation failures on

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosx_introspection at Robotics Stack Exchange