station
A network-based interprocess communication (IPC) library written in Rust.
NOTE: this is heavily under development and not everything is available. Anything version less than v0.1.0 is incomplete.
Structure
The station
design is heavily influenced by ROS and
aims to create an interface with similar patterns. station
can run either on
one machine or many machines and the networking protocol used to transmit
messages between processes is designed to be flexible.
The station
module has several main types:
Station
: AStation
tracks and managers all incoming and outgoing messages on a machine and connects to other machines runningstation
. There is typically one instance ofstation
running per machine.Process
: AProcess
connects to the localstation
instance and registers connections to pubsub topics and RPC channels.Publisher
: Publish a message with theSerialize
andDeserialize
traits to a topic.Subscriber
: Subscribe to a topic and process messages via a callback.RpcServer
: Listen for requests and send the result back to the sender.RpcClient
Send requests to a server and wait for the response.
Status
- TCP RPC
- Unix Socket RPC
- TCP Pubsub
- UDP Pubsub
- Unix Socket Pubsub
- Station/Task nodes
- Type Configuration