Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/newpavlov/rosbag-rs
Reading rosbag files in pure Rust
https://github.com/newpavlov/rosbag-rs
Last synced: 3 months ago
JSON representation
Reading rosbag files in pure Rust
- Host: GitHub
- URL: https://github.com/newpavlov/rosbag-rs
- Owner: newpavlov
- License: apache-2.0
- Created: 2022-09-02T23:19:56.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-05-22T14:32:43.000Z (8 months ago)
- Last Synced: 2024-05-22T14:32:48.768Z (8 months ago)
- Language: Rust
- Size: 60.5 KB
- Stars: 7
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- awesome-rust-list - newpavlov/rosbag-rs - rs?style=social"/> : A pure Rust crate for reading ROS bag files. (Robot Operating System)
- awesome-rust-list - newpavlov/rosbag-rs - rs?style=social"/> : A pure Rust crate for reading ROS bag files. (Robot Operating System)
README
# rosbag-rs
[![Crate][crate-image]][crate-link]
[![Docs][docs-image]][docs-link]
![Apache2/MIT licensed][license-image]
![Rust Version][rustc-image]
[![Build Status][build-image]][build-link]
[![Dependency Status][deps-image]][deps-link]A pure Rust crate for reading ROS bag files.
## Example
```rust
use rosbag::{ChunkRecord, MessageRecord, IndexRecord, RosBag};let bag = RosBag::new(path)?;
// Iterate over records in the chunk section
for record in bag.chunk_records() {
match record? {
ChunkRecord::Chunk(chunk) => {
// iterate over messages in the chunk
for msg in chunk.messages() {
match msg? {
MessageRecord::MessageData(msg_data) => {
// ..
}
MessageRecord::Connection(conn) => {
// ..
}
}
}
},
ChunkRecord::IndexData(index_data) => {
// ..
},
}
}
// Iterate over records in the index section
for record in bag.index_records() {
match record? {
IndexRecord::IndexData(index_data) => {
// ..
}
IndexRecord::Connection(conn) => {
// ..
}
IndexRecord::ChunkInfo(chunk_info) => {
// ..
}
}
}
```## License
The crate is licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.[//]: # (badges)
[crate-image]: https://img.shields.io/crates/v/rosbag.svg
[crate-link]: https://crates.io/crates/rosbag
[docs-image]: https://docs.rs/rosbag/badge.svg
[docs-link]: https://docs.rs/rosbag
[rustc-image]: https://img.shields.io/badge/rustc-1.63+-blue.svg
[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg
[build-image]: https://github.com/newpavlov/rosbag-rs/actions/workflows/rosbag.yml/badge.svg
[build-link]: https://github.com/newpavlov/rosbag-rs/actions/workflows/rosbag.yml
[deps-image]: https://deps.rs/repo/github/newpavlov/rosbag-rs/status.svg
[deps-link]: https://deps.rs/repo/github/newpavlov/rosbag-rs