domain-iot
Use when building IoT apps. Keywords: IoT, Internet of Things, sensor, MQTT, device, edge computing, telemetry, actuator, smart home, gateway, protocol, 物联网, 传感器, 边缘计算, 智能家居
By actionbook · 2,262 installs
npx skills add actionbook/rust-skills --skill domain-iot
Source repository · Upstream listing
IoT Domain
Layer 3: Domain Constraints
Domain Constraints → Design Implications
Domain Rule Design Constraint Rust Implication
Unreliable network Offline first Local buffering
Power constraints Efficient code Sleep modes, minimal alloc
Resource limits Small footprint no std where needed
Security Encrypted comms TLS, signed firmware
Reliability Self recovery Watchdog, error handling
OTA updates Safe upgrades Rollback capability
Critical Constraints
Network Unreliability
Power Management
Device Security
Trace Down ↓
From constraints to design (Layer 2):
Environment Comparison
Environment Stack Crates
Linux gateway tokio + std rumqttc, reqwest
MCU device embassy + no std embedded hal
Hybrid Split workloads Both
Key Crates
Purpose Crate
MQTT (std) rumqttc, paho mqtt
Embedded embedded hal, embassy
Async (std) tokio
Async (no std) embassy
Logging (no std) defmt
Logging (std) tracing
Design Patterns
Pattern Purpose Implementation
Pub/Sub Device comms MQTT topics
Edge compute Local processing Filter before upload
OTA updates Firmware upgrade Signed + rollback
Power mgmt Battery life Sleep + wake events
Store & forward Network reliability Local queue
Code Pattern: MQTT Client
Common Mistakes
Mistake Domain Violation Fix
No retry logic Lost data Exponential backoff
Always on radio Battery drain Sleep between sends
Unencrypted MQTT Security risk TLS
No local buffer Network outage = data loss Persist locally
Trace to Layer 1
Constraint Layer 2 Pattern Layer 1 Implementation
Offline first Store & forward Local queue + flush
Power efficiency Sleep patterns Timer based wake
Network reliability Retry tokio retry, backoff
Security TLS rustls, native tls
Related Skills
When See
Embedded patterns domain embedded
Async patterns m07 concurrency
Error recovery m13 domain error
Performance m10 performance