roboxide

Crates.ioroboxide
lib.rsroboxide
version0.1.1
sourcesrc
created_at2020-11-24 17:32:42.308361
updated_at2020-11-24 17:40:48.352674
descriptionA simple ROS-like library for robotics
homepage
repositoryhttps://github.com/AgentMacklin/roboxide
max_upload_size
id315889
size84,745
Austen LeBeau (mcbunkus)

documentation

README

roboxide

roboxide is a (very) stripped down library that aims to fulfill the same function as ROS, while leveraging Rust's ecosystem as much as possible. It is very opinionated about its use of Rust - there is no infrastructure to bridge other languages with message and service files, client libraries, etc. The main advantages of this are:

Simpler Build Process

Instead of using tools like catkin/colcon and cmake, you can use cargo to build your libraries/nodes. All it takes is a [[bin]] or [[lib]] entry in your Cargo.toml.

Builtin Types

You can use regular Rust structs as messages, instead of creating dedicated message and service files. The only requirement is they implement serde's Serialize and Deserialize traits, which can easily be done with the #[derive] macro.

Package Management

Packages can be uploaded to crates.io, circumventing the need for system dependent package managers. You just need cargo.

Dependencies

This library depends on ZeroMQ, so libzmq needs to be installed before building this library. A native Rust implementation of ZeroMQ is in the works (zmq.rs), but it's not production ready as of now. Hopefully in the future it will be, so libzmq won't have to be installed separately to use this library.

Examples

Pub/sub is the only messaging mechanism implemented at the moment. You can test it with with some nodes in examples/.

1. Open a terminal and run the publisher example.

cargo run --example publisher

2. Open another terminal and run the subscriber example.

cargo run --example subscriber

3. Profit

The subscriber will begin receiving messages.

Commit count: 15

cargo fmt