- Notifications
You must be signed in to change notification settings - Fork116
MCAP is a modular, performant, and serialization-agnostic container file format, useful for pub/sub and robotics applications.
License
foxglove/mcap
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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.
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 | seereleases | |
Python | readme | API docs | mcap | |
JavaScript/TypeScript | readme | API docs | @mcap/core | |
Swift | readme | API docs | seereleases | |
Rust | readme | API docs | mcap |
To run the conformance tests, you will need to useGit LFS,which is used to store the test logs undertests/conformance/data
.
Inspect, merge, and split MCAP files from the command line using the MCAP CLI.
Install withbrew install mcap
or download the latest version directly from thereleases page.
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.
- Update the
Version
in go/mcap/version.go - Tag a release matching the version number
go/mcap/vX.Y.Z
.
Tag a release matchingreleases/mcap-cli/vX.Y.Z
.
The version number is set at build time based on the tag.
- 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/include/mcap/types.hpp (
MCAP_LIBRARY_VERSION
) - cpp/mcap/include/conanfile.py
- cpp/test/conanfile.py
- Tag a release matching the version number
releases/cpp/vX.Y.Z
There are several python packages; updating any follows a similar process.
- Update the version in the appropriate
__init.py__
file - Tag a release
- For the core mcap library, match the pattern
releases/python/vX.Y.Z
- For other packages, use
releases/python/PACKAGE/vX.Y.Z
- For example,
releases/python/mcap/v1.2.3
- For example,
- For the core mcap library, match the pattern
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,
Tag a release matching the version numberreleases/swift/vX.Y.Z
- Update the version in rust/Cargo.toml
- Tag a release matching the version number
releases/rust/vX.Y.Z
If you use MCAP in your research, please cite it in your work. Our suggestedcitation 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 youused, and the date you obtained it. Citing MCAP will help spread awareness ofthe project and strengthen the ecosystem.
About
MCAP is a modular, performant, and serialization-agnostic container file format, useful for pub/sub and robotics applications.