ros2-rust/ros2_rust

Rust bindings for ROS 2

What it solves

This project provides a way for developers to write ROS 2 (Robot Operating System 2) applications using the Rust programming language, offering a safer and more modern alternative to the traditional C++ or Python implementations.

How it works

It implements a client library called rclrs and a code generator that allows Rust code to interface with the ROS 2 ecosystem. It supports core ROS 2 concepts such as publishers, subscriptions, services, actions, and parameters, while integrating Rust's async capabilities for handling concurrent tasks.

Who it’s for

Robotics developers who want to leverage Rust's memory safety and performance characteristics while remaining compatible with the ROS 2 framework.

Highlights

  • Comprehensive ROS 2 Support: Includes support for all ROS message types, publishers, subscriptions, services, and actions.
  • Async Integration: Provides async variants for publishers, subscriptions, clients, and services.
  • Zero-Copy Messaging: Supports loaned messages for high-performance data transfer.
  • System Integration: Includes a code generator for message generation and tools for managing shared state via worker and executor patterns.
  • ROS Compatibility: Full support for ROS-compliant logging, graph queries, and tunable QoS settings.

Related

  • Project
  • Project
  • Project
  • Project
  • Project