Expand description

The iot_device_bridge implements the most important functions of AWS IoT device SDK to connect to the AWS IOT Core and other alternate MQTT IoT (non AWS).

Implemented IoT functionality:

  • Connecting to AWS IoT Core via MQTT – sending / receiving messages
  • AWS Fleet Provisioning using the CreateCertificateFromCsr mode
  • AWS Device Shadow with 2 shadows
    • IoT Shadow for managing of the IoT connection and
    • Device Shadow for configuring the filtering and mapping rules

For details regarding the software design see the README.md in the code repository.

For details regarding use in the code see the structure and comments in the main.rs.

Modules

Config utilities for loading and storing settings from/to YAML file.

IoT connector for bridging to the cloud or other IoT facilities.

Functionality implementing the data payload encryption using ECIES (Elliptic Curve Integrated Encryption Scheme) built upon AES-GCM-256 and HKDF-SHA256 and using the secp256k1 curve.

Device Adapter for bridging and transformig messages from device to the messages to cloud IoT.

DeviceShadow processing that is not device or shadow specific (see also the DeviceAdapter). The DeviceShadow concept includes the named shadows for device state and iot state..

IoTError utilities for abstracting and alignment of errors from used crates.

An implementation of the “Provisioning by Claim” workflow of the Fleet Provisioning feature of AWS IoT Core.

The AsyncClient is wrapper around the rumqttc::AsyncClient.