DEV Community

Cover image for Rust IoT Platform
Beck_Moulton
Beck_Moulton

Posted on

Rust IoT Platform

This is a high-performance IoT development platform built with Rust, designed to support multiple protocols and provide real-time data processing capabilities. The platform supports MQTT, WebSocket (WS), TCP, and CoAP protocols, making it highly flexible for various IoT application scenarios.

Github Repo: https://github.com/iot-ecology/rust-iot-platform
If you like this project, please give it a star.

Key Features

  • High Performance: Written in Rust, leveraging Rust's memory safety and concurrency features to deliver an efficient IoT solution.
  • Multi-Protocol Support: Supports MQTT, WebSocket (WS), TCP, and CoAP protocols, catering to a wide range of application requirements.
  • Real-Time Data Processing: Built-in real-time data processing mechanisms ensure fast response and efficient data transmission.
  • Modular Design: Clearly defined modules for easy extension and maintenance.

Architecture Diagram

Below is the architecture diagram of the platform, illustrating how the various modules work together:

Architecture Diagram

Supported Protocols

  • MQTT: Supports the standard MQTT protocol, ideal for real-time messaging applications.
  • WebSocket (WS): Provides real-time bidirectional communication support for web clients.
  • TCP: A general-purpose transport protocol for device-to-device communication.
  • CoAP: A protocol designed for low-power devices, suitable for embedded applications.

Feature List

  • Device Management: Easily manage all device data and information. The device group feature allows devices to be grouped based on different scenarios, improving the efficiency of device management.

  • Personnel Management: Provides comprehensive role, department, and permission management functions to ensure that each user has access only within their authorized scope, enhancing system security.

  • Lifecycle Management: Involves the entire process from production to delivery of devices, ensuring smooth execution at each stage and enabling tracking of the device's status and progress.

  • Protocol Management: Supports multiple commonly used IoT protocols, ensuring efficient and secure communication between devices and the platform through detailed management and configuration.

  • Data Management: Provides flexible data processing and alert configuration capabilities. Users can set various signal processing and alert rules based on their needs, ensuring real-time system response.

  • Notification Management: Through Feishu and DingTalk bots, the platform can send important notifications and alerts in a timely manner, ensuring administrators can quickly respond to and handle abnormal situations.

  • Forwarding Management: Supports data forwarding to various mainstream databases, ensuring efficient storage and processing of device data to meet different storage and query requirements.

Device Management

  • Device Details: View and manage detailed information of individual devices, including device configurations, status, logs, and usage data.
  • Device Group: Organize devices into groups based on functionality, location, or other custom criteria to enable bulk operations and centralized management.

Personnel Management

  • User List: Manage user information within the platform, including role assignment and access control.
  • Department List: Organize users by department for better management and permission allocation.
  • Role List: Define different roles, assign corresponding permissions to each role, and ensure users can only access platform features within their role's scope.
  • Info List: Manage additional information related to users, devices, and events, providing detailed records and search functionality.

Lifecycle Management

  • Product List: Manage the lifecycle of IoT products, including creation, updates, and status tracking.
  • IoT Card Management: Manage the allocation, status updates, and usage of IoT cards, ensuring stable device communication.
  • Device Production Management: Track the device production process to ensure production progress and quality control.
  • Device Shipping Management: Manage the shipping, distribution, and delivery status of devices, ensuring timely arrival.

Protocol Management

  • MQTT Protocol:

    • MQTT Client Management: Configure and manage MQTT clients, including device connections and message transmissions.
    • MQTT Client Service Node Management: Manage MQTT service nodes, controlling the connections and message routing between clients and servers.
  • HTTP Protocol:

    • HTTP Processor Management: Manage HTTP request handling, including different API interfaces and request types.
    • HTTP Server Management: Configure and manage the HTTP server to handle requests from external systems.
  • TCP Protocol:

    • TCP Processor Management: Manage TCP connections and data flow, including connection pools and data parsing.
    • TCP Server Management: Configure and manage the TCP server to receive and send device data.
  • CoAP Protocol:

    • CoAP Processor Management: Configure and manage data processors for CoAP protocol, suitable for low-power devices.
    • CoAP Server Management: Manage the CoAP server, supporting efficient communication between devices.
  • WebSocket Protocol:

    • WebSocket Processor Management: Manage WebSocket connection processors to support real-time, bidirectional communication.
    • WebSocket Server Management: Configure the WebSocket server to provide real-time data transmission services to clients.

Data Management

  • Signal Management: Manage signals from devices or sensors, including signal types, sources, and handling methods.
  • Signal Alert Configuration: Set and manage alert rules for signals, triggering alerts when signals exceed predefined thresholds.
  • Computation Rules: Define calculation logic and rules for processing and analyzing data from devices.
  • Computation Parameters: Manage the parameters required for data processing, ensuring accuracy during the computation process.
  • Script Alerting: Automate alerting using scripts, supporting custom alert behavior based on script logic.
  • Script Parameters: Define and manage parameters used in scripts to allow flexible adjustments under different conditions.

Notification Management

  • Feishu Bot: Send real-time notifications via Feishu Bot, supporting customized notification content and triggering conditions.
  • DingTalk Bot: Integrate DingTalk Bot to send messages and alerts, ensuring timely communication.

Forwarding Management

  • Cassandra: Configure data forwarding to Cassandra for large-scale data storage and fast queries.
  • ClickHouse: Forward data to ClickHouse, suitable for real-time data analysis and large-scale data storage.
  • InfluxDB 2: Support forwarding time-series data to InfluxDB 2 for efficient time-series data queries and storage.
  • MongoDB: Forward data to MongoDB, supporting JSON-formatted data storage and flexible querying.
  • MySQL: Forward data to MySQL, suitable for relational data storage, management, and querying.

Top comments (0)