MCAP

The high-performance log format for your robotics data.

MCAP is an open-source self‑describing container for efficient logging in robotics and pub/sub systems—fast to write and fast to seek.

MCAP files can store multiple channels of timestamped, heterogeneous data of any format including ROS, JSON, and Protobuf, with embedded schemas for long-term readability. Its row-oriented, append-only design ensures fast, reliable writes, while optional indexing and advanced compression (LZ4, Zstandard) optimize retrieval and storage.

A better way to log your robotics data.

Efficient, reliable logging for robotics and Physical AI development.
01

A self‑describing, serialization‑agnostic container.

With MCAP, you can capture every stream your system emits—whether it’s sensor data, control signals, perception outputs, or metadata—into a single, unified file. It records multiple channels of timestamped, pre-serialized messages while staying neutral about how you encode them, supporting Protobuf, DDS (CDR), ROS, JSON, and more. 

Because MCAP embeds message schemas alongside your data, your files remain self-describing and future-proof, ensuring you can always decode and analyze them even as your code evolves.
02

Fast, durable recording and low‑latency reads.

MCAPs append-only, row-oriented design ensures high-volume writes stay durable, even under load, while configurable chunking, checksums, and compression let you balance throughput and safety to fit your workload. On playback, built-in indexes make it easy to jump directly to the data you need—by time or topic—without scanning entire files, so whether your logs live locally or in the cloud, you can get to insights quickly without waiting on full downloads.
03

Built for ROS 2 and your non‑ROS stack.

Reader and writer libraries in C++, Go, Python, Rust, Swift, and TypeScript let you integrate directly into data pipelines, services, and notebooks without framework lock-in.

If you’re working with ROS 2, MCAP is the default storage format starting with the Iron release, which means ros2 bag record now produces .mcap files automatically. You can also convert older .db3 files and even ROS 1 .bag files with the CLI, making it easy to standardize logging across your entire fleet and toolchain.
04

Open spec, rich ecosystem, and cloud‑friendly by design.

MCAP is open source with a published specification and well‑defined records for schemas, channels, attachments, metadata, statistics, and indexes. That makes interoperability predictable and future maintenance safe.

You can keep data usable for years: MCAP’s indexing and self‑contained design (“record once, read forever”) pair well with remote object storage and modern analysis tools—move files freely and still achieve fast seeks and summaries without specialized infrastructure.

Start building with Foxglove.

Get started for free