FlowMaker SDKs (by language)
FlowMaker SDK support exists in TypeScript, Python, and C#/.NET with a shared runtime model:
- Registration (
id/version, IO contracts, UI config) - Runtime event loop (
INIT,CURRENT,CAN_SEND_NEXT,DESTROY, heartbeat) - Header-driven serialization (
msgpack/json) - Worker logging and widget events over Socket.IO
Language sections
TypeScript SDK (@industream/flowmaker-sdk)
- Overview & Architecture — Start here for runtime diagram and data flow
- FlowBox Implementations — Build Source, Pipe, and Sink nodes
- FlowBoxCore and FlowBoxRaw — Base classes and implementation patterns
- FlowBoxLogger API — Logging and socket management
- FlowBoxSerializer API — Serialization and headers
Python SDK (industream-flowmaker-sdk)
C# / .NET SDK (Industream.FlowMaker.Sdk)
Shared runtime contract (high level)
- Worker registers FlowBox implementations with runtime.
- Scheduler sends ZeroMQ messages containing routing frames, IO id, header, and payload.
- SDK dispatches by event id from header bytes.
- Serializer is selected from header serialization bytes.
- Source/pipe/sink handlers process and acknowledge flow-control events.
Common payload convention used in docs and examples
{
"temperature": 21.7,
"pressure": 1.8,
"$$meta": {
"temperature": { "entryId": "dc-entry-temp" },
"pressure": { "entryId": "dc-entry-pressure" }
},
"$$timestamp": "2026-04-10T16:00:00.000Z"
}
- Root keys: measured tags.
$$meta: per-tag mapping metadata.$$timestamp: event time.