Crate unros

Source
Expand description

Unros is an experimental alternative to the ROS 1 & 2 frameworks.

It is written from the ground up in Rust and seeks to replicate most of the common functionality in ROS while adding some extra features that exploit Rust’s abilities.

This crate contains the core functionality which defines what this framework offers:

  1. The Node trait
  2. A complete logging system
  3. An asynchronous Node runtime
  4. Publisher and Subscribers (analagous to ROS publisher and subscribers)
  5. The Service framework (analagous to ROS actions and services)

Modules§

anyhow
githubcrates-iodocs-rs
bytes
Provides abstractions for working with bytes.
log
A lightweight logging facade.
logging
pubsub
Publishers and Subscribers are an essential component of many frameworks in many different disciplines.
rayon
Rayon is a data-parallelism library that makes it easy to convert sequential computations into parallel.
rng
A simple pool of pseudorandom number generators to avoid seeding new ones frequently.
service
Services can be thought of as a long running function whose execution has to be requested through an API, and its status can be tracked while it is running, and the return value will be provided back to the service requester.
tokio
A runtime for writing reliable network applications without compromising speed.
utils
Several utilities that complement the Unros framework.

Macros§

default_run_options
Creates a default RunOptions.
setup_logging
Sets up a locally available set of logging macros.
super_panic
A safe way to terminate the program with ample logged information.

Structs§

Application
Configuration for an Application that will be ran by Unros.
DropCheck
A simple primitive for tracking when clones of itself have been dropped.
NodeIntrinsics
An object that all Nodes must store.
ObservingDropCheck
A similar object to DropCheck, however, none of its clones will be updated when this is dropped.
RunOptions
Configurations for the runtime
RuntimeContext
A reference to the runtime that is currently running.

Traits§

Node
A Node just represents a long running task.

Functions§

asyncify_run
Spawns a blocking thread (using spawn_persistent_thread) that can be awaited on.
get_env
Deserialize environment variables and dhe default config file into the given generic type.
spawn_persistent_thread
Spawns a thread that is guaranteed to run the given closure to completion.
start_unros_runtime
The main entry point to an Unros runtime.

Attribute Macros§

async_trait
main
Wraps the given method to be ran using start_unros_runtime.