| Crates.io | ros2-interfaces-jazzy-serde |
| lib.rs | ros2-interfaces-jazzy-serde |
| version | 0.0.4 |
| created_at | 2025-12-04 18:01:22.453713+00 |
| updated_at | 2025-12-04 18:01:22.453713+00 |
| description | Updated Structs for Messages and Services listed by ROS Index for ROS2 Jazzy. Built around the `ros2-client` crate. |
| homepage | https://www.make87.com |
| repository | https://github.com/stelzo/ros2-interfaces-jazzy-serde |
| max_upload_size | |
| id | 1966815 |
| size | 2,189,343 |
This crate is a updated version of this crate, that does not have a linked repository to apply changes to. For supporting later versions of ros2-client, we need to keep the dependency updated. All the credit of generating the messages goes to the original authors.
This repository contains Rust structs for all interfaces (i.e., messages and services) that are listed as releases on the ROS Index for Jazzy.
The interfaces implement traits from the ros2-client library and can be used easily in conjunction.
Every package is a separate feature for this crate, so you can cherry-pick the interfaces you need.
Example are std_msgs, geometry_msgs and nav2_msgs.
Add this crate to your Cargo.toml:
[dependencies]
ros2-interfaces-jazzy-serde = { version = "*", features = ["std_msgs"] } # replace with the latest version and features you need
Then you can use the interfaces in your code:
use ros2_client::{Context, MessageTypeName, Name, NodeName, NodeOptions};
use ros2_interfaces_jazzy::std_msgs;
fn test_publisher() {
let context = Context::new().unwrap();
let mut node = context
.new_node(
NodeName::new("/rustdds", "rustdds_listener").unwrap(),
NodeOptions::new().enable_rosout(true),
)
.unwrap();
let topic = node
.create_topic(
&Name::new("/","topic").unwrap(),
MessageTypeName::new("std_msgs", "String"),
&ros2_client::DEFAULT_PUBLISHER_QOS,
)
.unwrap();
let publisher = node
.create_publisher::<std_msgs::msg::String>(&topic, None)
.unwrap();
let message = std_msgs::msg::String {
data: "Hello, world!".to_string(),
};
publisher.publish(message).unwrap();
}
The following packages (and thereby: features) do not compile due to incompatible or missing interface definitions:
depthai_ros_msgsmrpt_msgsmrpt_nav_interfacesrosbag2_test_msgdefssick_scan_xdTherefore, the features have been commented out in the Cargo.toml file.