| Crates.io | r2a |
| lib.rs | r2a |
| version | 0.1.7 |
| created_at | 2024-10-01 02:24:50.069427+00 |
| updated_at | 2024-10-16 19:28:05.269651+00 |
| description | A Rust library that provides a typesafe way to convert ROS 2 messages into Apache Arrow format |
| homepage | https://github.com/istvan-fodor/r2a |
| repository | https://github.com/istvan-fodor/r2a |
| max_upload_size | |
| id | 1392407 |
| size | 155,641 |
The library is essentially a wrapper on top of the amazing R2R library. The two main components are r2a::ArrowSupport and r2a::RowBuilder.
This build was mainly tested with ROS 2 Humble. I also tested it with Jazzy locally (by switching to the master branch r2r).
Documentation can be found on docs.rs: https://docs.rs/r2a/latest/r2a/
The crate can be found on crates.io: https://crates.io/crates/r2a
cargo add r2aIf you use Visual Studio Code, the r2a.code-workspace will be useful. If you are using a Mac, the Code workspace assumes that you have Robostack installed and your env is called ros_env.
use r2a::ArrowSupport;
use r2a::RowBuilder;
let fields = r2r::std_msgs::msg::Header::arrow_fields(true);
let mut row_builder = r2r::std_msgs::msg::Header::new_row_builder(fields.iter().collect()); //We keep all the fields, convert to Vec<&Field>
let my_message = r2r::std_msgs::msg::Header {
stamp: r2r::builtin_interfaces::msg::Time {
sec: 0,
nanosec: 0,
},
frame_id: "test_frame".to_string(),
};
row_builder.add_row(&my_message).unwrap();
let arrow_arrays = row_builder.to_arc_arrays();
// store arrow_arrays as Parquet, etc..
For more elaborate examples see the examples folder.