ReductBridge bridges live robotics and IIoT data with long-term storage in ReductStore.
You can configure the bridge using a simple TOML file to define inputs, pipelines, and remotes.
Inputs produce data, pipelines route and modify it, and remotes store it.
An input is a data source. It reads data from a system and produces records for the bridge.
Supported input types include:
- Shell - run shell commands on a fixed interval and store output lines as records.
- ROS1 - subscribe to ROS1 topics and store ROS messages as records.
- ROS2 - subscribe to ROS2 topics and store serialized CDR payloads as records.
A remote is a data destination. It receives records from pipelines and writes them to external storage.
Supported remote types include:
- ReductStore - write pipeline records and attachments to ReductStore with configurable batching.
Pipelines connect one or more inputs to one remote.
# Pipeline definition path:
# [pipelines.<pipeline_name>]
[pipelines.telemetry]
# Required: remote name from [[remotes.*]].
remote = "local"
# Required: one or more input names from [inputs.*.*].
inputs = ["ros_local"]
# Optional label rules (default = []):
# 1) Static labels:
# { static = { source = "robot" }, to = "*" }
# - adds labels to matching target entries
# 2) Copy labels from one entry to another:
# { from = "time", labels = ["timestamp"], to = "echo" }
# - remembers labels seen on matching source entries
# - applies them to matching target entries
labels = [
{ static = { source = "ros1" }, to = "*" }
]sudo snap install reduct-bridge-<build-type> --channel=edge # or --channel=stable once releasedTo run the service with an explicit config file path, set the config-path snap option:
sudo cp path/to/config.toml /var/snap/reduct-bridge/reduct-bridge.toml
sudo chmod 640 /var/snap/reduct-bridge/reduct-bridge.toml
sudo snap set reduct-bridge-<build-type> config-path=/var/snap/reduct-bridge/commont/reduct-bridge.toml
sudo snap get reduct-bridge-<build-type> config-path
sudo snap restart reduct-bridge-<build-type>.serviceRelease CI builds snap package variants and publishes them to the standard channels.
cargo install reduct-bridgecargo install reduct-bridge builds the default feature set, which includes only the shell input.
For ROS2-specific build and runtime guidance, see ROS2 input documentation.
To build additional inputs explicitly from source:
cargo build --no-default-features --features ros1
cargo build --no-default-features --features all-inputsreduct-bridge /path/to/config.tomlFor detailed documentation, please refer to the ReductBridge Documentation.