Open ssnover opened 1 year ago
IIRC there is a lot to consider for implementing proper writing of rosbag files. I would prefer to not add a partial solution.
Do you simply want to tweak the data
field in MessageData
? Can you guarantee that its size does not change? I think we could add an API for getting offset of data
in original file, you then could use it to modify bytes directly using other means.
I agree, best to implement a full solution rather than a partial solution. I've already circumvented my original use case with C++, but this seemed like an opportunity to improve the ecosystem and I've been working with the messages' internals a lot as part of roslibrust.
If you think it's appropriate for this crate to expand to a scope closer to what's offered by the official rosbag package, I'd be happy to come up with an API to review and, if it looks good, take a crack at implementing it. No sweat if not though, it certainly grows the amount of code to be maintained in this repo.
I am not opposed to expanding the scope, but it looks like a sizable undertaking, which probably should be done in cooperation with folks from rosrust and similar projects. I think a higher priority should be to add a proper integration with ROS types instead of returning raw byte slices. Since I do not currently actively work with ROS, I am open to transferring this crate to an organization or developer with the goal of developing pure Rust ROS ecosystem.
Either way, feel free to open a draft PR. I will try to give you my feedback when I can.
I created a simple rust lib for rosbag2, feel free to comments/advise if you also interested to create similar thing: https://github.com/NerdToMars/rosbag2-rs
Was looking to write a quick program to modify a value on some data in a rosbag I had recorded and realized this nifty crate didn't support writing; only reading.
Would you accept an MR to support modifying data and writing the modified rosbag back to disk?