How snodec/mqttsuite works
MQTTSuite is a collection of MQTT 3.1.1 applications. A typical message workflow uses mqttcli to publish or subscribe through mqttbroker; optional branches translate mapped topics, bridge brokers, or persist messages to MariaDB. The integrator UI edits mapping configurations, while broker-side administration exposes mapping configuration and draft operations. The README documents product capabilities; unsampled implementation links are omitted or marked unverified rather than inferred from names.
Main entry points: Mqtt.cpp MQTT broker · MappingAdminRouter.cpp Mapping admin API · mapping.service.ts Mapping state service · mqttbridge.cpp Bridge application
Components 25
Shared mapping runtime
- Application config
lib/ConfigApplication.h - Mapping reader
lib/JsonMappingReader.h - Topic mapper
lib/MqttMapper.h - Mapping admin API
lib/MappingAdminRouter.cpp - Template storage plugin
lib/plugins/storage/Storage.cpp - Template engine
lib/inja.hpp - Logging
lib/Log.h
Broker and CLI
- MQTT command client
mqttcli/lib/Mqtt.cpp - MQTT broker
mqttbroker/lib/Mqtt.cpp - Broker routing
mqttbroker/lib/MqttModel.cpp
Mapping integrator
- Mapping editor UI
mqttintegrator/ui/src/app/components/edit-topic/edit-topic.ts - Mapping state service
mqttintegrator/ui/src/app/shared/services/mapping.service.ts - Mapping format adapter
mqttintegrator/ui/src/app/shared/adapter/mapping-adapter.ts - Mapping API client
mqttintegrator/ui/src/app/shared/services/api.service.ts - Integrator MQTT runtime
mqttintegrator/lib/Mqtt.cpp
Broker bridging
- Bridge configuration UI
mqttbridge/ui/src/components/BridgeForm.tsx - Bridge application
mqttbridge/mqttbridge.cpp - Bridge configuration store
mqttbridge/lib/BridgeStore.cpp - Bridge message handling
mqttbridge/lib/Bridge.cpp - Bridge status events
mqttbridge/lib/SSEDistributor.cpp
Message storage
- Storage projections
mqttstore/lib/StoragePlan.cpp - Storage MQTT handler
mqttstore/lib/Mqtt.cpp - MariaDB writer
mqttstore/lib/MariaDbStorage.cpp - MariaDB
Other components
- Operator or device
Connections 24
- Operator or device → MQTT command client: publish or subscribe
README.md - MQTT command client → MQTT broker: exchange messages
README.md - MQTT broker → Broker routing: route messages
- MQTT broker → Topic mapper: translate topics
README.md - Mapping admin API → Application config: reads active mapping
lib/MappingAdminRouter.cpp - Mapping admin API → Mapping reader: creates drafts
lib/MappingAdminRouter.cpp - Mapping admin API → Topic mapper: reads active mapping
lib/MappingAdminRouter.cpp - Topic mapper → Template storage plugin: uses plugin
- Template storage plugin → Template engine: evaluates templates
- Operator or device → Mapping editor UI: edit mappings
- Mapping editor UI → Mapping state service: updates mapping state
- Mapping state service → Mapping format adapter: converts mapping
mqttintegrator/ui/src/app/shared/services/mapping.service.ts - Mapping state service → Mapping API client: deploys configuration
mqttintegrator/ui/src/app/shared/services/mapping.service.ts - Mapping API client → Mapping admin API: HTTP API
- Operator or device → Bridge configuration UI: configure bridges
- Bridge configuration UI → Bridge application: manage configuration
- Bridge application → Bridge configuration store: loads configuration
- Bridge application → Bridge message handling: runs bridge
- Bridge message handling → Bridge status events: reports status
- MQTT broker → Storage MQTT handler: delivers messages
README.md - Storage MQTT handler → Storage projections: matches projections
- Storage MQTT handler → MariaDB writer: stores messages
- MariaDB writer → MariaDB: writes records
mqttstore/lib/MariaDbStorage.cpp - Operator or device → Integrator MQTT runtime: configure integration