0.3.1-gitdf0e78d154.3 MB
Apache-2.0
strict
core22
ReductBridge bridges live robotics and IIoT data in ReductStore
# Reduct Bridge
[](https://github.com/reductstore/reduct-bridge/releases/latest)
[](https://github.com/reductstore/reduct-bridge/actions)
[](https://hub.docker.com/r/reduct/bridge)
[](https://github.com/reductstore/reduct-bridge/releases/latest)
[](https://codecov.io/gh/reductstore/reduct-bridge)
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 produce data, pipelines route and modify it, and remotes store it.
## Inputs
An
Supported input types include:
- [HTTP](src/input/http/README.md) - poll HTTP/HTTPS endpoints on a fixed interval and store response payloads with optional JSON/header label mapping.
- [Metrics](src/input/metrics/README.md) - collect host CPU, memory, and disk metrics as JSON records.
- [MQTT](src/input/mqtt/README.md) - subscribe to MQTT v3/v5 topics over
- [Shell](src/input/shell/README.md) - run shell commands on a fixed interval and store output lines as records.
- [ROS1](src/input/ros1/README.md) - subscribe to ROS1 topics, store ROS messages, and extract labels from message fields.
- [ROS2](src/input/ros2/README.md) - subscribe to ROS2 topics, store serialized CDR payloads, and extract labels from decoded message fields.
## Remotes
A
Supported remote types include:
- [ReductStore](src/remote/reduct/README.md) - write pipeline records and attachments to ReductStore with configurable batching.
## Pipelines
Pipelines connect one or more inputs to one remote.
``
Choose the build type for the input family you need.
### Build Types
Published packages and Docker images are split into these build types so each artifact only includes the dependencies needed for its input family.
| B...
[](https://github.com/reductstore/reduct-bridge/releases/latest)
[](https://github.com/reductstore/reduct-bridge/actions)
[](https://hub.docker.com/r/reduct/bridge)
[](https://github.com/reductstore/reduct-bridge/releases/latest)
[](https://codecov.io/gh/reductstore/reduct-bridge)
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.
## Inputs
An
input is a data source. It reads data from a system and produces records for the bridge.Supported input types include:
- [HTTP](src/input/http/README.md) - poll HTTP/HTTPS endpoints on a fixed interval and store response payloads with optional JSON/header label mapping.
- [Metrics](src/input/metrics/README.md) - collect host CPU, memory, and disk metrics as JSON records.
- [MQTT](src/input/mqtt/README.md) - subscribe to MQTT v3/v5 topics over
mqtt:// or mqtts:// and store raw payloads with optional payload/property label mapping.- [Shell](src/input/shell/README.md) - run shell commands on a fixed interval and store output lines as records.
- [ROS1](src/input/ros1/README.md) - subscribe to ROS1 topics, store ROS messages, and extract labels from message fields.
- [ROS2](src/input/ros2/README.md) - subscribe to ROS2 topics, store serialized CDR payloads, and extract labels from decoded message fields.
## Remotes
A
remote is a data destination. It receives records from pipelines and writes them to external storage.Supported remote types include:
- [ReductStore](src/remote/reduct/README.md) - write pipeline records and attachments to ReductStore with configurable batching.
## Pipelines
Pipelines connect one or more inputs to one remote.
``
toml
# Pipeline definition path:
# [pipelines.<pipelinename>]
[pipelines.telemetry]
# Required: remote name from [[remotes.*]].
remote = "local"
# Required: one or more input names from [inputs.*.*].
inputs = ["roslocal"]
# 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 = "*" }
]
`
## Supported Formats
ReductBridge supports different payload formats.
Support means ReductBridge can parse payloads, extract labels, and, when schema information is available, store that schema in ReductStore.
- JSON: find values by field path (example: [examples/mqttconfig.toml](examples/mqttconfig.toml)).
- HTTP input: poll HTTP/HTTPS endpoints and extract optional header/JSON labels (example: [examples/httpconfig.toml](examples/httpconfig.toml)).
- Protobuf: find values by field path (with schema) or by field ID/type (example: [examples/mqttprotobufconfig.toml](examples/mqttprotobufconfig.toml)).
- ROS formats: decode ROS message payloads for labels and store the payloads as records (example: [examples/rosconfig.toml](examples/rosconfig.toml)).
## Installation
ReductBridge is published in build types named after Cargo feature bundles: ros1, ros2, and iot`.Choose the build type for the input family you need.
### Build Types
Published packages and Docker images are split into these build types so each artifact only includes the dependencies needed for its input family.
| B...
Update History
0.3.0-gitaa4fb73 (12) → 0.3.1-gitdf0e78d (15)4 Jun 2026, 09:30 UTC
0.2.1-git96928c5 (6) → 0.3.0-gitaa4fb73 (12)2 Jun 2026, 10:15 UTC
0.2.0-git5cc34b9 (3) → 0.2.1-git96928c5 (6)19 May 2026, 14:00 UTC
0.1.2-git61067c5 (1) → 0.2.0-git5cc34b9 (3)11 May 2026, 08:45 UTC
0.1.2-git61067c5 (1)4 May 2026, 14:45 UTC
4 May 2026, 14:38 UTC
4 Jun 2026, 09:12 UTC
4 May 2026, 14:45 UTC