Industrial data middleware: OpexFlow ingests from any protocol, transforms data in flight with JavaScript or the native DSL, and delivers to any sink, all from a single static binary with an embedded UI.
Welcome to the OpexFlow docs. OpexFlow ingests from any protocol, transforms data in flight, and delivers to any sink, all from a single static binary with an embedded UI. New here? Start with Quick start. If you only read one section, make it the Transform DSL; it’s the fastest path through your data.
How these docs are organized
The docs walk through OpexFlow’s four primitives — sources, transforms, sinks, and flows — then the operational layers around them.
Installation
Ship the static binary via Docker or build from source with only the adapters you need.
Quick start
A connector identity, one Modbus source, and a default DSL transform — running in minutes.
Sources
Protocol adapters — Modbus, OPC-UA, MQTT, NATS, HTTP, FOCAS, MTConnect — all normalize to one shape.
Transform DSL
The tiny statement-based language evaluated natively against the event struct. The fastest path through your data.
The rest of the pages expand each layer: Core concepts, Flows and per-source routing, the configuration reference, JavaScript transforms, Sinks, Observability, the REST API, Deployment, the CLI, and Licensing.