rosrust-async
A native ROS1 client implementation in async Rust.
Features
- Designed to leverage the code generation functionality provided by rosrust
- Publishers & subscribers with support for latched topics and configuring
TCP_NODELAY
- Service clients & servers with support for persistent connections
- Define services using async functions or closures returning async blocks
- Support for the ROS1 Parameter Server
- Client implementations for both the ROS Master & ROS Slave APIs
- Optional Clock module for interacting with simulated time
Getting Started
The examples directory contains a handful of examples showing how to use this crate.
The rosrust-async-test
crate is also worth looking at. The tests are a bit verbose & hard on the eyes, but they can also serve as a good reference for more complex use-cases.
Status
Although ROS1 has reached EOL as of 2025-05-31, this project is being actively maintained!
The API is mostly complete, aside from a few rough spots. Check out the issues page for a summary of what is being worked on.
Note: Documentation is limited in this initial release. Improving both API docs and examples is a top priority. Please open an issue if you encounter any problems or have questions.
License
This project is licensed under the MIT license.