[Open-source] An open-source IoT development platform, quickly build your own IoT business platform
![[Open-source] An open-source IoT development platform, quickly build your own IoT business platform](https://yy123.ink/api/img/1782579102280-r4xq8z.jpg)
1. Project Overview

Charming IoT (iotkit) IoT platform open-source project. Charming IoT is an open-source IoT basic development platform that provides common basic functions for IoT and related business development, helping you quickly build your own IoT-related business platform.
The system includes categories, device models, message conversion, communication components (MQTT/EMQX communication components, small speaker interface components, onenet Studio interface components), MODBUS transparent transmission, MODBUS virtual gateway, cloud-side low-code device development, device management, device grouping, rule engine, third-party platform interface, data flow conversion (HTTP/MQTT/Kafka), data visualization, alarm center, etc. and smart home APP (mini program).
2. Open Source License
Licensed under Apache-2.0
3. Screenshots



4. Feature Overview
roadmap
Green: completed, blue: in progress, orange: planning

5. Tech Stack
Architecture
Cloud-Edge Architecture

Platform Architecture

Software Architecture
Software architecture description This system uses springboot, vertx, redis, H2, mysql, elasticsearch, TDEngine, RocketMq, sa-token and other frameworks and third-party software, and uses modular non-invasive integration, which is very easy to extend and replace.
Default use built-in redis, h2 database, es time-series database and vertx message bus to reduce the difficulty of startup, can achieve zero-configuration one-key startup , the program will use the data/init directory's example data to initialize when it starts for the first time.
Note: ES version is 7.15.2, MySQL version is 8.0+
Low-end server with million-level device access capability
Server Configuration: 1 x 2-core 2G (Alibaba Cloud Emergency Performance Instance) running the main program, 1 x 2-core 4G (Alibaba Cloud Emergency Performance Instance) running TDengine and RocketMq
Program configuration: using built-in H2 database and built-in mqtt
Device Access Status: Access to 4,000 gateways + 8,000 sub-devices, with 4,000 sub-devices reporting data every 10 seconds
Stable operation: Devices online and reporting/forwarding normally, CPU usage not exceeding 50%, and no lag in interface operation
Low learning threshold
1. Zero-configuration one-click operation, even a novice can use it
2. Low environmental requirements, no additional software installation required
3. Civilian-level code, no formal layered structure and excessive encapsulation, simple and easy to understand
Mainstream database support
Relational Database: In theory, it supports all databases that implement the standard SQL, such as: DB2, H2, HSQLDB, MariaDB, Microsoft SQL Server, MySQL, Oracle, Postgres
Time-series database: elasticsearch, TDEngine
K-V database: redis
Support for message bus
Vertx event-bus (built-in), RocketMQ, other message middleware can be connected through extension module.