{"id":13815108,"url":"https://github.com/foxglove/mcap","last_synced_at":"2026-01-05T06:33:19.256Z","repository":{"id":37242921,"uuid":"429907564","full_name":"foxglove/mcap","owner":"foxglove","description":"MCAP is a modular, performant, and serialization-agnostic container file format, useful for pub/sub and robotics applications.","archived":false,"fork":false,"pushed_at":"2025-05-13T19:16:42.000Z","size":137017,"stargazers_count":604,"open_issues_count":93,"forks_count":125,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-05-13T20:31:58.125Z","etag":null,"topics":["cpp","data","deserialization","golang","python","robotics","serialization","swift","typescript"],"latest_commit_sha":null,"homepage":"https://mcap.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foxglove.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-19T19:09:38.000Z","updated_at":"2025-05-13T19:16:45.000Z","dependencies_parsed_at":"2023-10-03T23:47:34.275Z","dependency_job_id":"1f29e6bf-4c1d-42c9-9783-aaf5aa6ec011","html_url":"https://github.com/foxglove/mcap","commit_stats":{"total_commits":806,"total_committers":50,"mean_commits":16.12,"dds":0.7543424317617866,"last_synced_commit":"c99a5f1f8fefed54dc28c02f21d991f415126d48"},"previous_names":[],"tags_count":209,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxglove%2Fmcap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxglove%2Fmcap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxglove%2Fmcap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foxglove%2Fmcap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foxglove","download_url":"https://codeload.github.com/foxglove/mcap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254031893,"owners_count":22002834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","data","deserialization","golang","python","robotics","serialization","swift","typescript"],"created_at":"2024-08-04T04:02:58.138Z","updated_at":"2026-01-05T06:33:19.250Z","avatar_url":"https://github.com/foxglove.png","language":"Python","readme":"\u003cimg src=\"/website/static/img/mcap720.webp\" alt=\"MCAP logo\" width=\"240\" height=\"180\"/\u003e\n\n# MCAP\n\nMCAP 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.\n\n## Documentation\n\n- [File format specification](https://mcap.dev/spec)\n  - [Kaitai Struct definition](./website/docs/spec/mcap.ksy)\n- [Motivation](https://mcap.dev/files/evaluation.pdf)\n- [Support Matrix](https://mcap.dev/reference)\n\n## Developer quick start\n\nMCAP libraries are provided in the following languages. For guidance on each language, see its corresponding README:\n\n| Language              | Readme                 | API docs                                                        | Package name | Version                                                                              |\n| --------------------- | ---------------------- | --------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------ |\n| C++                   | [readme](./cpp)        | [API docs](https://mcap.dev/docs/cpp)                           | `mcap`       | [![](https://shields.io/conan/v/mcap)](https://conan.io/center/mcap)                 |\n| Go                    | [readme](./go/mcap)    | [API docs](https://pkg.go.dev/github.com/foxglove/mcap/go/mcap) |              | see [releases](https://github.com/foxglove/mcap/releases)                            |\n| Python                | [readme](./python)     | [API docs](https://mcap.dev/docs/python)                        | `mcap`       | [![](https://shields.io/pypi/v/mcap)](https://pypi.org/project/mcap/)                |\n| JavaScript/TypeScript | [readme](./typescript) | [API docs](https://mcap.dev/docs/typescript)                    | `@mcap/core` | [![](https://shields.io/npm/v/@mcap/core)](https://www.npmjs.com/package/@mcap/core) |\n| Swift                 | [readme](./swift)      | [API docs](https://mcap.dev/docs/swift/documentation/mcap)      |              | see [releases](https://github.com/foxglove/mcap/releases)                            |\n| Rust                  | [readme](./rust)       | [API docs](https://mcap.dev/docs/rust/mcap)                     | `mcap`       | [![](https://shields.io/crates/v/mcap)](https://crates.io/crates/mcap)               |\n\nTo run the conformance tests, you will need to use [Git LFS](https://git-lfs.github.com/),\nwhich is used to store the test logs under `tests/conformance/data`.\n\n## MCAP CLI\n\nInspect, merge, and split MCAP files from the command line using the MCAP CLI.\n\nInstall with `brew install mcap` or download the latest version directly from the [releases page](https://github.com/foxglove/mcap/releases?q=mcap-cli).\n\n## License\n\n[MIT License](/LICENSE).\n\n## Release process\n\nRelease numbering follows a major.minor.patch format, abbreviated as \"X.Y.Z\" below.\n\nCI will build the appropriate packages once tags are pushed, as described below.\n\n### Go library\n\n1. Update the `Version` in go/mcap/version.go\n2. Tag a release matching the version number `go/mcap/vX.Y.Z`.\n\n### CLI\n\nTag a release matching `releases/mcap-cli/vX.Y.Z`.\n\nThe version number is set at build time based on the tag.\n\n### C++\n\n1. Update the version in all relevant files\n   - cpp/bench/conanfile.py\n   - cpp/build-docs.sh\n   - cpp/build.sh\n   - cpp/docs/conanfile.py\n   - cpp/examples/conanfile.py\n   - cpp/mcap/include/mcap/types.hpp (`MCAP_LIBRARY_VERSION`)\n   - cpp/mcap/include/conanfile.py\n   - cpp/test/conanfile.py\n2. Tag a release matching the version number `releases/cpp/vX.Y.Z`\n\n### Python\n\nThere are several python packages; updating any follows a similar process.\n\n1. Update the version in the appropriate `__init__.py` file\n2. Tag a release matching `releases/python/PACKAGE/vX.Y.Z`\n   - For example, `releases/python/mcap/v1.2.3`\n\n### TypeScript\n\nThere are several TS packages; updating any follows a similar process.\n\n1. Update the version in the appropriate `package.json`\n2. Tag a release matching `releases/typescript/PACKAGE/vX.Y.Z`\n   - For example, `releases/typescript/core/v1.2.3`\n\n### Swift\n\nTag a release matching the version number `releases/swift/vX.Y.Z`\n\n### Rust\n\n1. Update the version in rust/Cargo.toml\n2. Tag a release matching the version number `releases/rust/vX.Y.Z`\n\n## Citations\n\nIf you use MCAP in your research, please cite it in your work. Our suggested\ncitation format is:\n\n```\n@software{MCAP,\n  title = {MCAP: serialization-agnostic log container file format},\n  author = {{Foxglove Developers}},\n  url = {https://mcap.dev},\n  version = {your version},\n  date = {your date of access},\n  year = {2024},\n  publisher = {{Foxglove Technologies}},\n  note = {Available from https://github.com/foxglove/mcap}\n}\n```\n\nPlease replace the version and date fields with the version of the software you\nused, and the date you obtained it. Citing MCAP will help spread awareness of\nthe project and strengthen the ecosystem.\n\n## Stay in touch\n\nJoin our [Discord community](https://foxglove.dev/chat) to ask questions, share feedback, and stay up to date on what our team is working on.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxglove%2Fmcap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoxglove%2Fmcap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxglove%2Fmcap/lists"}