ros2-rust/ros2_rust

Rust bindings for ROS 2

What it solves

It allows developers to build ROS 2 applications using the Rust programming language, providing a safer and more modern alternative to the traditional C++ and Python implementations.

How it works

The project provides a client library called rclrs, a code generator for ROS messages, and a set of examples. It implements core ROS 2 functionality including publishers, subscriptions, services, actions, and timers, while integrating with the Rust ecosystem (such as async support and the worker pattern for state management).

Who it’s for

Robotics developers who want to leverage Rust's memory safety and performance characteristics within the ROS 2 ecosystem.

Highlights

  • Comprehensive ROS 2 Support: Includes support for all ROS message types, publishers, subscriptions, services, and actions.
  • Async Capabilities: Provides asynchronous variants for publishers, subscriptions, clients, and services.
  • Performance Features: Supports loaned messages for zero-copy messaging to reduce overhead.
  • System Integration: Includes tools for graph queries, tunable QoS settings, and ROS-compliant logging utilities.

Related

  • Project
  • Project
  • Project
  • Project
  • Project