Open Source RoboticsRobots, software & learning

MCAP

Software

Robot-log container format and multi-language libraries for recording typed timestamped messages, with a separate inspection CLI. [1] [3]

Installation & first result →Official websiteGetting started

For
Robotics developers handling ROS or other timestamped sensor/message recordings [1]
Source rights
Named licenses are documented by part. Review licenses
Unknowns
operating system, compute requirements not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware

Requirements · Research details and dates

On this page

Overview

MCAP is a logging format and a set of implementations for storing timestamped messages with their schema and channel information. For a robotics workflow, it helps separate the recording container from the encoding of the messages inside it. Choosing an MCAP file extension does not establish that another tool can interpret every ROS, Protobuf or custom message in that file. [1] [3]

Is this for you?

Known limitations
  • A common container does not ensure every reader can decode every message schema.
  • Compression support, corruption/recovery behavior and real-world durability were not tested.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [2] [3] [4] [5] · Editorial assessment

What you need

Dependencies
  • Language-specific SDK and optional compression dependencies; select the matching implementation

[1] [2] [3] [4] [5]

Installation & first result

Open the upstream getting-started guide [1]

  • Use the SDK for the chosen language or the separately documented MCAP CLI; start with a sample recording you can decode.
  • Preserve exact source/dependency/model versions and evaluate the selected workflow before connecting physical hardware or reusing data.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [2] [3] [4] [5] · Editorial assessment

Installation

Use the SDK for the chosen language or the separately documented MCAP CLI; start with a sample recording you can decode.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [2] [3] [4] [5] · Editorial assessment

Hardware, models & data

Inputs and outputs

Serialized messages, schemas, channel metadata and timestamps to MCAP recordings and decoded message streams.

Editorial scope assessment from the cited implementation/documentation; no execution or compatibility test.

[1] [3] · Editorial assessment

Project notes

Pick a library or an inspection workflow

The repository supplies language-specific readers and writers, together with separate ROS support packages. It also documents a command-line tool for inspecting, merging and splitting recordings. A useful first step is to choose the implementation for your application's language, then identify the schema/encoding support needed by the downstream reader. Begin with a known sample recording rather than assuming a viewer can decode an arbitrary robot log. [1] [4]

For the documented command-line route, the README offers brew install mcap. For Python, its package table names mcap; separate directories provide mcap-ros1-support, mcap-ros2-support and mcap-protobuf-support. Select the needed decoder alongside the core library; those support packages' requirements and interoperability were not evaluated here. [1] [4]

The selected Python writer source distinguishes record structures such as schemas, channels, messages, chunks, indexes and the footer. Its Writer defaults to ZSTD compression, so that selection needs the zstandard library; the source raises UnsupportedCompressionError when it is missing. LZ4 similarly needs lz4, while NONE is an explicit uncompressed option. Check the chosen writer mode and downstream consumer rather than assuming an importable core package supplies every compression path. No performance or reader compatibility test was run. [3]

Evaluate the storage behavior you need

Use the documented SDK and CLI routes to investigate the recording structure and decoding path. Before using a log as experiment evidence, determine which timestamps, message definitions and metadata must survive your own writer/reader pipeline. Corruption recovery, partial writes, durability and sustained recording throughput require tests of that pipeline; none were performed here. [1] [3]

The repository's root license is MIT. This source review does not license the sensor data placed inside a log or establish rights to redistribute someone else's recordings. No SDK installation, file conversion, live robot capture or benchmark was run. [2]

What we checked

Source research only. Selected implementation/model text, repository tree and license declarations were inspected. No upstream compilation, dependency installation, simulator, network/USB/device integration, data collection, benchmark or physical robot test was performed. Source files are linked rather than redistributed; external services and paid products are not endorsed.

Not yet established

  • Requirements: operating system, host computer
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Not established
Latest release
Not established
Profile updated
Nov 1, 2026
Sources last checked
Nov 1, 2026
Next review
Dec 1, 2026
Reviewed revision
34daf9a

Source files and licenses

Distinct robot-facing library contribution with actual implementation/model content and a bounded documented next step. Review covers source artifacts, not operational performance or a complete tested deployment.

LayerAvailability / license
softwareavailable · MIT
Declaration for the scoped source implementation/documentation; dependencies, external services, model/data assets and inherited file-specific terms require separate checks. No blanket redistribution or operational clearance. [1] [2] [3]
documentationavailable · MIT
Declaration for the scoped source implementation/documentation; dependencies, external services, model/data assets and inherited file-specific terms require separate checks. No blanket redistribution or operational clearance. [1] [2] [3]

This profile is scoped to source implementation/model descriptions and an initial inspection workflow; no physical manufacturing design, pretrained checkpoint or dataset is selected for redistribution or tested deployment.

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history