Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robot Operating System 2.0
  3. ros2_rust

ros2_rust

Apache-2.0Rustv0.7.0

A client library and toolset enabling developers to write ROS 2 applications in the Rust programming language.

GitHubGitHub
1.5k stars206 forks0 contributors

What is ros2_rust?

ROS 2 for Rust (ros2_rust) is a set of tools, including the rclrs client library and a code generator, that enables developers to write ROS 2 nodes and applications in the Rust programming language. It solves the problem of integrating Rust's safety and performance features into the ROS 2 robotics ecosystem, allowing developers to leverage ROS 2's extensive middleware while using Rust.

Target Audience

Robotics developers and engineers who are building ROS 2-based systems and want to utilize Rust's memory safety, concurrency features, and modern tooling. This includes teams working on performance-critical or safety-sensitive robotic applications.

Value Proposition

Developers choose ROS 2 for Rust because it provides a fully-featured, idiomatic Rust interface for ROS 2, prioritizing safety and performance while maintaining compatibility with the broader ROS ecosystem. It offers unique advantages like zero-copy messaging via loaned messages, async support for core communication patterns, and dynamic message handling, which are not as readily available in other ROS 2 language bindings.

Overview

Rust bindings for ROS 2

Use Cases

Best For

  • Building high-performance ROS 2 nodes where zero-copy messaging and low latency are critical.
  • Developing safety-critical robotic applications that benefit from Rust's memory safety guarantees.
  • Creating ROS 2 applications with complex async workflows, such as action servers and clients.
  • Integrating Rust's modern tooling and concurrency models into existing ROS 2 ecosystems.
  • Prototyping or building ROS 2 nodes that require dynamic message introspection and manipulation at runtime.
  • Teams transitioning from C++ to Rust for ROS 2 development who need a comprehensive and idiomatic Rust library.

Not Ideal For

  • Projects requiring long-term stability and API guarantees, as the library is still evolving with no stability promises.
  • Teams with tight deadlines or limited DevOps resources, due to the complex, distribution-specific installation process.
  • Applications dependent on ROS 2 features not yet implemented in rclrs, as indicated by the open issue list.

Pros & Cons

Pros

Comprehensive ROS 2 Support

Supports all core ROS 2 features including message generation for all types, publishers, subscriptions, services, actions, and async variants, as detailed in the features list.

Performance-Focused Design

Includes loaned messages for zero-copy messaging and tunable QoS settings, optimizing for low-latency communication critical in robotics.

Idiomatic Rust Integration

Provides modern Rust patterns like async support for actions and services, and worker/executor models for safe concurrency.

Dynamic Runtime Capabilities

Allows for dynamic message handling and introspection at runtime, enabling flexible and adaptive node behavior.

Cons

Unstable API

The README explicitly states no stability guarantees due to rapid evolution, making it risky for production systems without frequent updates.

Complex Setup and Dependencies

Installation requires different steps for each ROS distribution, manual cloning of repositories, and workarounds like installing extra packages (e.g., due to issue #557).

Limited Ecosystem Maturity

Compared to established bindings like rclcpp, the ecosystem is smaller, with missing features and ongoing development, as seen in the issue list.

Frequently Asked Questions

Quick Stats

Stars1,476
Forks206
Contributors0
Open Issues61
Last commit22 days ago
CreatedSince 2017

Tags

#robotics#node-management#ros2#code-generator#async#client-library#rust-bindings#zero-copy#ros#rust#middleware

Built With

R
Rust

Included in

Robot Operating System 2.02.1k
Auto-fetched 1 day ago

Related Projects

rclcpprclcpp

rclcpp (ROS Client Library for C++)

Stars762
Forks534
Last commit3 days ago
rclpyrclpy

rclpy (ROS Client Library for Python)

Stars454
Forks284
Last commit1 day ago
rclnodejsrclnodejs

Node.js version of ROS 2.0 client

Stars429
Forks84
Last commit2 days ago
ros2_dotnetros2_dotnet

.NET bindings for ROS2

Stars180
Forks64
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub