Yet another ROS2 client library written in Rust

Overview

RclRust

rclrust's logo

rclrust codecov dependency status Rust 1.53 Apache-2.0

Target CI Status Document
Foxy (Ubuntu 20.04)

Introduction

This is yet another ROS2 client library written in Rust.
I have implemented it independent of the ament or colcon. By using proc-macro to generate message-type and service-type code, crate dependency resolution can now be completed in cargo. This was inspired by rosrust.

Development environment

  • OS: Ubuntu 20.04
  • ROS2: Foxy
  • rustc: 1.54.0 (stable)

Supporting features

  • Code generation from .msg, .srv, .action
  • Loggers
  • Publishers/Subscriptions
  • Services/Clients
  • Timers
  • Parameters (without services)

TODO

  • Parameter services/clients
  • Actions
  • Multithread
  • Lifecycles
  • More
    • Unit test
    • Documentation
    • Examples (especially with ament)
  • etc...

I'm not going to support

  • Components
    • Is it necessary for Rust?

Examples

Prepare

$ git clone [email protected]:rclrust/rclrust.git
$ cd rclrust
$ cargo build

Pub/Sub

Publisher:

$ cargo run --examples publisher

Subscription

$ cargo run --examples subscription

out

For more examples, see https://github.com/rclrust/rclrust/tree/main/rclrust/examples.

Notice

The icon of RclRust was created by combinating and modifing the following materials.

The other ROS2 clients written in Rust

You might also like...
🦀 Zulip API Library Rust Client

Zulip API Client Library Rust Crate This repo contains the code for an unofficial, third-party Zulip API client library crate written in the Rust prog

librdkafka - the Apache Kafka C/C++ client library

librdkafka - the Apache Kafka C/C++ client library Copyright (c) 2012-2020, Magnus Edenhill. https://github.com/edenhill/librdkafka librdkafka is a C

Rust client for Pushover

Pushover RS Description It's a Rust client library you can use to interact with the Pushover messaging API. This client is unofficial and I'm in no wa

Feign-RS (Rest client of Rust)

Feign-RS (Rest client of Rust)

A Rust client for the NOAA Weather Wire Service Open Interface.

nwws-oi A Rust client for the NOAA Weather Wire Service Open Interface. NWWS-OI is one of several platforms through which the National Weather Service

A simple external client made with rust

A simple external client made with rust

A fast & light weight Discord Client made with love using the Rust programming language.
A fast & light weight Discord Client made with love using the Rust programming language.

LemonCord A fast & light-weight Discord Client written in Rust using the wry crate. Features Fast, light-weight, easy to use. 100% Open sourced. No su

A highly modular Bitcoin Lightning library written in Rust. Its Rust-Lightning, not Rusty's Lightning!

Rust-Lightning is a Bitcoin Lightning library written in Rust. The main crate, lightning, does not handle networking, persistence, or any other I/O. Thus, it is runtime-agnostic, but users must implement basic networking logic, chain interactions, and disk storage. More information is available in the About section.

A simple, external MCPE client. For learning purposes...

sage A simple, external MCPE client. For learning purposes... Current Cheats a VERY simple speed, it just edits the speed pointer TODO Clean-up code A

Comments
  • Fix parsing CRLF termnated service files

    Fix parsing CRLF termnated service files

    The service file parser panics on /opt/ros/foxy/share/udp_msgs/srv/UdpSend.srv from ros2 foxy. The UdpSend.srv file is \r\n terminated, causing the parse fails to find --- separator using regex. Before parsing, this patch replaces \r\n with \n in the service file.

    opened by jerry73204 1
Owner
rclrust
ROS2 + Rust
rclrust
🥳Yet another crate to create native nodejs addons :)

nodex Yet another crate to create native nodejs addons :) This crate aims to make creating native nodejs addons very easy and comfortable. It is in a

uuhan 4 Mar 29, 2022
sentry - yet another multi-purpose discord bot

sentry - yet another multi-purpose discord bot

miten 1 Feb 17, 2022
A simple, yet feature-filled wrapper around the coqui-stt C API

A simple, yet feature-filled wrapper around the coqui-stt C API

0/0 56 Jan 3, 2023
Another Network Tunnel; A simple program for local/remote port forwarding over a SSH tunnel.

?? ANT Another Network Tunnel; A simple program for local/remote port forwarding over a SSH tunnel. Table of Contents Installation Pre-requisites Pre-

Hendrik Böck 20 Jun 25, 2023
Meteor Client Installer - Installer to automate the install of Fabric and Meteor Client

This is an installer that automates the install of Meteor and Fabric

Jake Priddle 3 Jun 23, 2021
A variation of the solana helloworld program example with a client written in Rust instead of Typescript

Simple Solana Smart Contract Example This repository demonstrates how to create and invoke a program on the Solana blockchain. In Solana the word prog

zeke 56 Dec 26, 2022
Luno API Client written in Rust Language for Rustaceans :)

The Luno API provides developers with a wealth of financial information provided through the Luno platform

borngraced 4 Dec 22, 2022
Notion Offical API client library for rust

Notion API client library for rust.

Jake Swenson 65 Dec 26, 2022
An asynchronous Rust client library for the Hashicorp Vault API

vaultrs An asynchronous Rust client library for the Hashicorp Vault API The following features are currently supported: Auth AppRole JWT/OIDC Token Us

Joshua Gilman 59 Dec 29, 2022
Ocular seeks to be the preferred cosmos client library UX for Rust projects

Ocular seeks to be the preferred cosmos client library UX for Rust projects. It is strongly based on lens, a go client library for blockchains built with the Cosmos SDK.

Peggy JV, Inc 34 Dec 26, 2022