Skip to main content

rcutils is a ROS 2 C API package offering fundamental utility functions and data structures for the ROS 2 codebase.

Project description

Built using https://github.com/ycheng517/ros-python-wheels.

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

API

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • Functions for interfacing with process environment variables:
    • rcutils_get_env()
    • rcutils_get_home_dir()
    • rcutils_set_env()
    • rcutils/env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
      • RCUTILS_LOG_DEBUG()
      • RCUTILS_LOG_INFO_NAMED()
      • RCUTILS_LOG_WARN_ONCE()
      • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • Some basic utilities to load, unload and get symbols from shared libraries at run-time.
    • rcutils/shared_library.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils_raw_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
      • rcutils_string_array_t
      • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
      • rcutils_string_map_t
      • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

ros_rcutils-6.9.8-cp314-cp314t-manylinux_2_28_x86_64.whl (163.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

ros_rcutils-6.9.8-cp314-cp314-manylinux_2_28_x86_64.whl (163.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

ros_rcutils-6.9.8-cp313-cp313-manylinux_2_28_x86_64.whl (163.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

ros_rcutils-6.9.8-cp312-cp312-manylinux_2_28_x86_64.whl (162.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

ros_rcutils-6.9.8-cp311-cp311-manylinux_2_28_x86_64.whl (163.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

ros_rcutils-6.9.8-cp310-cp310-manylinux_2_28_x86_64.whl (162.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

File details

Details for the file ros_rcutils-6.9.8-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ros_rcutils-6.9.8-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5340682baceecf5e07a66ca284e1382e2133f6ca84e0376b0b3c53f118a41ead
MD5 d73d5f429269cdc41c03ba2b66513976
BLAKE2b-256 6741a7f10dee5efde6274f8856e68c8be059e871eb7d476bb6df58ca42476e95

See more details on using hashes here.

File details

Details for the file ros_rcutils-6.9.8-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ros_rcutils-6.9.8-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb03769a683a709d08fb6cf10802622e11550f75bc2957ebba103a7b608fc81e
MD5 c6521975b56265c9e2b682a7e6124ff5
BLAKE2b-256 15a96f6cbe6ef8858a353309faada0bafdbc95be35100a2b3e35f5eac38f6bf5

See more details on using hashes here.

File details

Details for the file ros_rcutils-6.9.8-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ros_rcutils-6.9.8-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59712b80a3fe5d4c2d15cee4dc69d00817dad6a576b947eec15bce21739d779b
MD5 17f19640d2ae2e93f1bcca2969d9dcf1
BLAKE2b-256 2bced2f445d9b351512e48ea5169728719360ed7425e31b22f6000e308769e0e

See more details on using hashes here.

File details

Details for the file ros_rcutils-6.9.8-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ros_rcutils-6.9.8-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5cb874a3dff4b26388d67ef79dfcf0a70d1cfb40389c6381ea85c470e44c6526
MD5 299f8054ccffa0fc4bf039855a064508
BLAKE2b-256 589ce2ede5b0e92d2461a5cc96f2a69f15e46c05d4505c2acb3f429b2fe899db

See more details on using hashes here.

File details

Details for the file ros_rcutils-6.9.8-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ros_rcutils-6.9.8-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 583872fa96817ff4f3686f6b0e269fe042ddf3505e2b4ad11fc56babcbf61162
MD5 0eaf2e5a6fc9145956791e459ce55b96
BLAKE2b-256 d53d500e1506838ffb88e68c3d58c7dd42c0dcb6653b3542c855622ad09e959d

See more details on using hashes here.

File details

Details for the file ros_rcutils-6.9.8-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ros_rcutils-6.9.8-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a229db79a7b02b10f8128b593f93ba10d30d2d097379f8db211ee85dcc777320
MD5 5c81c5a113aa0b6be67e5968e7f0903e
BLAKE2b-256 c7bdd12a376a9925eede9b70c5b3c94703c5523852d0b82becae0253a762149f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page