catkin-pkg
catkin package library
What it is and what it does
catkin_pkg is a standalone Python library that reads and interprets Catkin package metadata—the format used by ROS to describe package structure, dependencies, build rules, and metadata. It parses package.xml files and provides programmatic access to that information, making it useful for build tools, dependency analysis, and package management scripts that work with ROS projects.
The library depends on standard Python utilities (docutils, packaging, python-dateutil, pyparsing, setuptools) and has been part of the ROS infrastructure since 2012. It is primarily used by ROS build systems and tools that need to understand package relationships and metadata without invoking the full Catkin build environment.
Use it for:
- Parse ROS package.xml files to extract dependencies and metadata in build automation scripts.
- Analyze package relationships and generate dependency graphs for ROS workspaces.
- Validate Catkin package structure and metadata in CI/CD pipelines for ROS projects.
- Programmatically inspect package information in tools that manage or document ROS packages.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses and manages Catkin package metadata and configuration files for the ROS (Robot Operating System) build system, enabling programmatic access to package structure and dependencies.
Yes, if you work with ROS and need to programmatically read package metadata. The library is stable, has no known vulnerabilities, and carries a permissive license. However, maintenance is aging (338 days since last release)—verify that it supports your ROS version and use case before adopting it in new projects.
Install
catkin-pkg on PyPI
pip
pip install catkin-pkguv
uv add catkin-pkgpoetry
poetry add catkin-pkgInstalling catkin-pkg
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 338 days ago, though the repository remains active with a recent commit on 2025-09-29. Suitable for stable, established ROS workflows.
License in practice
BSD permissive license allows use in both open-source and proprietary projects with minimal restrictions; attribution required but no copyleft obligations.
Quickstart
pip install catkin-pkg
from catkin_pkg.package import parse_package
package = parse_package('/path/to/package.xml')
Requires Python 3.6 or later; intended for use within ROS environments where package.xml files are present.
Verify before relying
- Whether this package is actively maintained for new ROS versions or primarily serves legacy ROS 1 systems.
- Specific Catkin package format versions supported by this release.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — docutils, packaging, python-dateutil, pyparsing, setuptools |
| Maintenance | aging — 338 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 898,148/month — #4,784 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: catkin_pkg-1.1.0-py3-none-any.whl
Keywords: catkin, ROS
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
rosdistroParses and manipulates ROS distribution…
permissive · top 15,000 on PyPI
colcon-rosExtends colcon to recognize and build ROS…
permissive · top 15,000 on PyPI
resolve-robotics-uri-pyResolves ROS-style package:// and Gazebo-style…
permissive · top 15,000 on PyPI
rospkgProvides Python access to ROS package metadata…
permissive · top 15,000 on PyPI
rosbagsRead, write, convert, and deserialize ROS bag…
permissive · top 15,000 on PyPI
pyros-genmsgGenerates ROS message and service data…
permissive · top 15,000 on PyPI
mplibMPlib provides motion planning algorithms for…
permissive · top 15,000 on PyPI
robotcode-robotProvides project handling and integration…
permissive · top 15,000 on PyPI
vacuum-map-parser-roborockParses map data generated by Roborock vacuum…
permissive · top 15,000 on PyPI
colcon-common-extensionsBundles colcon-core and twenty common colcon…
permissive · top 15,000 on PyPI