[Open-source] Internet of Things (IoT) communication platform, usage habits consistent with those of IoT cloud platforms on the market
![[Open-source] Internet of Things (IoT) communication platform, usage habits consistent with those of IoT cloud platforms on the market](https://yy123.ink/api/img/1782579316012-mhl0q7.jpg)
1. Project Overview
ByteCub IoT platform
Based on Java 8, Spring Boot 2.3.6, Elasticsearch 7.6.2, Redis, MySQL 5.6/5.7, a IoT communication platform. The usage habit is consistent with the market's IoT cloud platforms.
2. Open Source License
Licensed under Apache-2.0
3. Screenshots
Partial Screenshots

4. Feature Overview
Function
Description
MQTT
1.SSL Support
2. Cluster deployment does not currently support retain&will type consumption
UDP
1. You need to implement the device encoding method in the UdpProtocolParser class yourself
(System default json format transmission clientId or imei as device encoding)
2. Permission verification: Custom permission verification in UdpAuthParser
Thing Model
Custom Thing Model
Data Protocol
Only one line of comments is needed to implement custom data protocols. Please refer to the documentation for details
Cluster Deployment
It is as simple as single instance deployment, and only needs to be configured with load balancing through nginx/LVS, etc.
Open Platform
You can easily and securely provide support capabilities to business systems through HTTP interfaces according to your project needs
5. Tech Stack
Based on Java 8, Spring Boot 2.3.6, Elasticsearch 7.6.2, Redis, MySQL 5.6/5.7, a IoT communication platform. The usage habit is consistent with the market's IoT cloud platforms.
Software Architecture

Installation Guide
External Dependencies:
- MySQL 5.6/5.7
- ElasticSearch 7.6.2
- Redis 4.0+
docker compose script is located at .docker\dev-env\docker-compose.yml, enter the directory by cd command, and execute docker-compose up -d to implement one-click development environment setup
Database:
Execute sql files in the docs/db directory, initial account password admin/123456
docs/current directory is the database change during iteration, for example 1.0.0-current.sql represents the database change from version 1.0.0 to the current version
Password Generation Format: Original string MD5 -> Convert to uppercase -> Second MD5
Start:
This project is a standard springboot project
- IDEA Start
- Start ByteCubApplication main class in bytecub-application module to start
- Jar Package Start
- Execute mvn install, run
nohup java -jar /home/apps/server/bytecub/bytecub-application-1.0-SNAPSHOT.jar --spring.profiles.active=prod >/dev/null 2>log &
Performance Test Results
Using 2-core 4G on Alibaba Cloud, single-machine deployment supports reporting 5K messages per second, no data accumulation, and CPU load up to 40%