{"id":14992190,"url":"https://github.com/newpavlov/rosbag-rs","last_synced_at":"2026-03-05T17:17:34.995Z","repository":{"id":62443814,"uuid":"532104332","full_name":"newpavlov/rosbag-rs","owner":"newpavlov","description":"Reading rosbag files in pure Rust ","archived":false,"fork":false,"pushed_at":"2024-05-22T14:32:43.000Z","size":62,"stargazers_count":7,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-22T14:32:48.768Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/newpavlov.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-02T23:19:56.000Z","updated_at":"2024-05-22T14:32:02.000Z","dependencies_parsed_at":"2024-09-24T16:09:52.179Z","dependency_job_id":"2feb09e5-6e9a-42f5-a1db-7e7984a239e7","html_url":"https://github.com/newpavlov/rosbag-rs","commit_stats":{"total_commits":23,"total_committers":3,"mean_commits":7.666666666666667,"dds":0.08695652173913049,"last_synced_commit":"1a3aa5af0d71fff4c348728fe15a49e27b150a89"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newpavlov%2Frosbag-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newpavlov%2Frosbag-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newpavlov%2Frosbag-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newpavlov%2Frosbag-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/newpavlov","download_url":"https://codeload.github.com/newpavlov/rosbag-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243846976,"owners_count":20357294,"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":[],"created_at":"2024-09-24T15:00:51.200Z","updated_at":"2026-03-05T17:17:34.942Z","avatar_url":"https://github.com/newpavlov.png","language":"Rust","funding_links":[],"categories":["Robot Operating System"],"sub_categories":[],"readme":"# rosbag-rs\n\n[![Crate][crate-image]][crate-link]\n[![Docs][docs-image]][docs-link]\n![Apache2/MIT licensed][license-image]\n![Rust Version][rustc-image]\n[![Build Status][build-image]][build-link]\n[![Dependency Status][deps-image]][deps-link]\n\nA pure Rust crate for reading ROS bag files.\n\n## Example\n```rust\nuse rosbag::{ChunkRecord, MessageRecord, IndexRecord, RosBag};\n\nlet bag = RosBag::new(path)?;\n// Iterate over records in the chunk section\nfor record in bag.chunk_records() {\n    match record? {\n        ChunkRecord::Chunk(chunk) =\u003e {\n            // iterate over messages in the chunk\n            for msg in chunk.messages() {\n                match msg? {\n                    MessageRecord::MessageData(msg_data) =\u003e {\n                        // ..\n                    }\n                    MessageRecord::Connection(conn) =\u003e {\n                        // ..\n                    }\n                }\n            }\n        },\n        ChunkRecord::IndexData(index_data) =\u003e {\n            // ..\n        },\n    }\n}\n// Iterate over records in the index section\nfor record in bag.index_records() {\n    match record? {\n        IndexRecord::IndexData(index_data) =\u003e {\n            // ..\n        }\n        IndexRecord::Connection(conn) =\u003e {\n            // ..\n        }\n        IndexRecord::ChunkInfo(chunk_info) =\u003e {\n            // ..\n        }\n    }\n}\n```\n\n## License\n\nThe crate is licensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n\n[//]: # (badges)\n\n[crate-image]: https://img.shields.io/crates/v/rosbag.svg\n[crate-link]: https://crates.io/crates/rosbag\n[docs-image]: https://docs.rs/rosbag/badge.svg\n[docs-link]: https://docs.rs/rosbag\n[rustc-image]: https://img.shields.io/badge/rustc-1.63+-blue.svg\n[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg\n[build-image]: https://github.com/newpavlov/rosbag-rs/actions/workflows/rosbag.yml/badge.svg\n[build-link]: https://github.com/newpavlov/rosbag-rs/actions/workflows/rosbag.yml\n[deps-image]: https://deps.rs/repo/github/newpavlov/rosbag-rs/status.svg\n[deps-link]: https://deps.rs/repo/github/newpavlov/rosbag-rs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewpavlov%2Frosbag-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnewpavlov%2Frosbag-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewpavlov%2Frosbag-rs/lists"}