Skip to main content

Module client

Module client 

Source
Expand description

The unified IotClient async trait — the entry point of the “thick-unification” layer over MQTT, Modbus, CoAP, and OPC UA.

Each protocol crate continues to expose its native API (e.g. MqttClient::publish, ModbusClient::read_holding_registers) — that is the recommended API for users who care about per-protocol semantics. IotClient sits on top of the native API and is the surface the iot-gateway crate uses to bridge protocols.

§AFIT

This trait uses async-fn-in-trait directly; that requires Rust 1.75+, which the workspace pins. There is no async-trait macro and no boxed futures in the hot path.

Trait objects (dyn IotClient) are not supported by the bare trait — AFIT methods are not object-safe. The gateway crate provides a thin BoxedClient adapter for that use case.

Structs§

PropertySample
One piece of telemetry — the value of a property, plus optional timestamp / quality metadata captured at the protocol layer.

Traits§

IotClient
The unified interface every protocol client implements.