Skip to main content

ROS Parser

A Python parser for ROS message definitions and Foxglove message path syntax.

Installation

uv add ros-parser

Parsers

  • ros1_msg: Parses ROS1 message definition files (.msg)
  • ros2_msg: Parses ROS2 message definition files (.msg)
  • message_path: Parses Foxglove message path syntax for data access and filtering

Usage

Parsing ROS2 Messages

from ros_parser import ros2_msg

definition = ros2_msg.parse_message_string("""
float64 x
float64 y
float64 z
""")

for field in definition.fields:
    print(f"{field.name}: {field.type}")

Parsing ROS1 Messages

from ros_parser import ros1_msg

definition = ros1_msg.parse_message_string("""
Header header
float64 x
float64 y
float64 z
""")

for field in definition.fields:
    print(f"{field.name}: {field.type}")

Parsing Schema with Dependencies

from ros_parser import parse_schema_to_definitions

# Parse a full schema including embedded type definitions
definitions = parse_schema_to_definitions(
    "geometry_msgs/msg/Pose",
    schema_data
)

Regenerating Standalone Parsers

The project uses Lark to generate standalone parsers from grammar files. If you modify any .lark grammar file, regenerate the parsers:

uv run _generate_standalone.py \
  src/ros_parser/ros1_msg/grammar.lark \
  src/ros_parser/ros2_msg/grammar.lark \
  src/ros_parser/message_path/grammar.lark \
  --output-dir src/ros_parser \
  --lexer contextual

For more details on the message path syntax, see src/ros_parser/message_path/README.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ros_parser-0.9.0.tar.gz (85.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ros_parser-0.9.0-py3-none-any.whl (93.7 kB view details)

Uploaded Python 3

File details

Details for the file ros_parser-0.9.0.tar.gz.

File metadata

  • Download URL: ros_parser-0.9.0.tar.gz
  • Upload date:
  • Size: 85.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ros_parser-0.9.0.tar.gz
Algorithm Hash digest
SHA256 9f99a50445a46e89eeb57cbb0fde776a8e4ab0ca1c41e024975162163ef42f3c
MD5 d2f4a9e14ce252b849e72a6a4c60b377
BLAKE2b-256 2dcb0c0eaf0b0ec5781f3161e6166a68c7ab2bf05f70c87f73884ad9e7faa9c7

See more details on using hashes here.

File details

Details for the file ros_parser-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: ros_parser-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 93.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for ros_parser-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8bf02bb68ef9ad57182824756a6f565a6056188c0a3933590fd7551beee0ece9
MD5 4b065f72479863f85fc946a77743ffc1
BLAKE2b-256 a495f7fba402ff30ed65d86227ba76f56d375ac3e4522cd20b9712bae372f2e5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page