rosbag-rs

Crate Docs Apache2/MIT licensed Rust Version Build Status Dependency Status

A pure Rust crate for reading ROS bag files.

Example

```rust use rosbag::{RosBag, Record};

let bag = RosBag::new(path).unwrap(); // create low-level iterator over rosbag records let mut records = bag.records(); // acquire BagHeader record, which should be first one let header = match records.next() { Some(Ok(Record::BagHeader(bh))) => bh, _ => panic!("Failed to acquire bag header record"), }; // get first Chunk record and iterate over Message records in it for record in &mut records { match record? { Record::Chunk(chunk) => { for msg in chunk.itermsgs() { println!("{}", msg?.time) } break; }, _ => (), } } // jump to index records records.seek(header.indexpos).unwrap(); for record in records { println!("{:?}", record?); } ```

Minimum Supported Rust Version

Rust 1.56 or higher.

Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.

License

The crate is licensed under either of

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.