Mcap
MCAP is a modular, performant, and serialization-agnostic container file format, useful for pub/sub and robotics applications.
Install / Use
/learn @foxglove/McapREADME
MCAP
MCAP is a modular container format and logging library for pub/sub messages with arbitrary message serialization. It is primarily intended for use in robotics applications, and works well under various workloads, resource constraints, and durability requirements.
Documentation
Developer quick start
MCAP libraries are provided in the following languages. For guidance on each language, see its corresponding README:
| Language | Readme | API docs | Package name | Version |
| --------------------- | ---------------------- | --------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------ |
| C++ | readme | API docs | mcap | |
| Go | readme | API docs | | see releases |
| Python | readme | API docs |
mcap | |
| JavaScript/TypeScript | readme | API docs |
@mcap/core | |
| Swift | readme | API docs | | see releases |
| Rust | readme | API docs |
mcap | |
To run the conformance tests, you will need to use Git LFS,
which is used to store the test logs under tests/conformance/data.
MCAP CLI
Inspect, merge, and split MCAP files from the command line using the MCAP CLI.
Install with brew install mcap or download the latest version directly from the releases page.
License
Release process
Release numbering follows a major.minor.patch format, abbreviated as "X.Y.Z" below.
CI will build the appropriate packages once tags are pushed, as described below.
Go library
- Update the
Versionin go/mcap/version.go - Tag a release matching the version number
go/mcap/vX.Y.Z.
CLI
Tag a release matching releases/mcap-cli/vX.Y.Z.
The version number is set at build time based on the tag.
C++
- Update the version in all relevant files
- cpp/bench/conanfile.py
- cpp/build-docs.sh
- cpp/build.sh
- cpp/docs/conanfile.py
- cpp/examples/conanfile.py
- cpp/mcap/conanfile.py
- cpp/mcap/include/mcap/types.hpp (
MCAP_LIBRARY_VERSION) - cpp/test/conanfile.py
- Tag a release matching the version number
releases/cpp/vX.Y.Z
Python
There are several python packages; updating any follows a similar process.
- Update the version in the appropriate
__init__.pyfile - Tag a release matching
releases/python/PACKAGE/vX.Y.Z- For example,
releases/python/mcap/v1.2.3
- For example,
TypeScript
There are several TS packages; updating any follows a similar process.
- Update the version in the appropriate
package.json - Tag a release matching
releases/typescript/PACKAGE/vX.Y.Z- For example,
releases/typescript/core/v1.2.3
- For example,
Swift
Tag a release matching the version number releases/swift/vX.Y.Z
Rust
- Update the version in rust/Cargo.toml
- Tag a release matching the version number
releases/rust/vX.Y.Z
Citations
If you use MCAP in your research, please cite it in your work. Our suggested citation format is:
@software{MCAP,
title = {MCAP: serialization-agnostic log container file format},
author = {{Foxglove Developers}},
url = {https://mcap.dev},
version = {your version},
date = {your date of access},
year = {2024},
publisher = {{Foxglove Technologies}},
note = {Available from https://github.com/foxglove/mcap}
}
Please replace the version and date fields with the version of the software you used, and the date you obtained it. Citing MCAP will help spread awareness of the project and strengthen the ecosystem.
Stay in touch
Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.
Related Skills
node-connect
337.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
337.4kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
claude-opus-4-5-migration
83.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
