Skip to content

Library Features and Support Matrix

Library Support

The Python, C++, Go, and TypeScript MCAP libraries are actively developed. This means that Foxglove actively pursues bug fixes and ensures conformance with the MCAP specification.

Note: This does not mean that their APIs are stable.

Feature Matrix

Python C++ Go TypeScript Swift Rust
Indexed unordered message reading Yes Yes Yes Yes No Yes
Timestamp-ordered message reading Yes Yes Yes Yes Yes No
Indexed metadata reading Yes Yes 1 Yes 1 Yes 1 Yes 1 Yes
Indexed attachment reading Yes Yes 1 Yes 1 Yes 1 Yes 1 Yes
Non-materialized attachment reading No Yes 2 No No No Yes
Non-indexed reading Yes Yes Yes Yes Yes Yes
CRC validation No No Yes Yes Yes Yes
ROS1 wrapper Yes No No No No No
ROS2 wrapper Yes 3 Yes 3 No No No No
Protobuf wrapper Yes No No No No No
Record writing Yes Yes Yes Yes Yes Yes
Easy chunked writing Yes Yes Yes Yes Yes Yes
Automatic summary writing Yes 4 Yes 4 Yes 4 Yes 4 Yes 4 Yes

  1. These readers don’t have a single call to read an attachment or metadata record by name, but do allow you to read the summary, seek to that location, read a record and parse it. 

  2. Using the MCAP Rosbag2 storage plugin

  3. The C++ reader interface does not preclude one from backing it with a memory-mapped file. This could be used to implement message and attachment parsing without copying data into memory. 

  4. All writers currently do not compute a CRC for the DataEnd record.