[Open-source] Java and Netty developed general-purpose IoT gateway system, supporting multiple protocols
![[Open-source] Java and Netty developed general-purpose IoT gateway system, supporting multiple protocols](https://yy123.ink/api/img/1782579575698-0qup27.jpg)
1. Project Overview
iboot(IoT Gateway)
iboot is a Java and Netty developed general IoT gateway system, used as a gateway between business systems and devices, for business systems to easily and quickly collect and control devices.
2. Open Source License
Licensed under Apache-2.0
3. Screenshots
Core function page







4. Feature Overview
iboot is a Java and Netty developed general IoT gateway system, used as a gateway between business systems and devices, for business systems to easily and quickly collect and control devices. Currently supports Modbus, PLC, serial port, MQTT, etc. industrial protocols, and provides the ability to customize device drivers.
Project introduction
1. What can this project be used for?
iboot is a general IoT gateway platform, used to connect business systems and IoT devices. It is mainly used for southward to collect and control devices, and for northward to provide interfaces for third-party business platforms to operate devices, making it easier for developers or companies who are not familiar with IoT to focus on business requirements and hand over device-related parts to iboot IoT gateway.
2. If the device collection and control is handed over to iboot, how does the business system interact with the device?
iboot supports interaction with business systems through HTTP protocol in a synchronous way and through MQTT in an asynchronous way, allowing business systems to indirectly collect and control devices through iboot gateway.
3. If the project is not large, the device quantity is not many, and a simple software architecture is not wanted, but high development efficiency is wanted, what should be done?
iboot is a single Spring Boot project, only dependent on MySQL service and Nginx service, deployment is simple, and running efficiency is high.
4. If the device types are many, does iboot support custom device access?
iboot supports custom device access through custom JAR packages, theoretically supporting any device.
5. If the device quantity is large, and the collected data quantity is large, one MySQL server cannot handle it, what should be done?
iboot supports multiple data sources, and supports switching collected data to time-series database (default TDengine) when needed.
6. If friends say they are not familiar with TDengine, and want to use other time-series data sources like InfluxDB?
iboot system key parts are in a pluginized form, making it easy to switch and customize.
7. If the client requires high real-time requirements, how does the business system interact with iboot gateway?
Firstly, iboot supports providing data to business systems through RabbitMQ queue in real-time (data, alarm, device online/offline, etc.), secondly, iboot supports pushing real-time data to front-end through WebSocket (convenient for web front-end real-time display or providing real-time data to configuration systems).
8. Does iboot support deploying the system on edge gateway servers?
iboot uses Java cross-platform language development, theoretically, as long as the edge server supports Linux system, it can be deployed.
9. Will your open-source product be a half-baked product like other open-source products (afraid to use it and encounter various problems, can only use the high-end version)?
iBoot's open-source products are chargeable products based on, because we only charge for part of the functions, the chargeable version is the underlying branch of the development version, and the core functional charge branches are all directly merged from the development version, so there is no need to worry, because they are the same code, only the chargeable version has some advanced functions
5. Tech Stack
System Installation Environment
iBoot is a Spring Boot single architecture, only one cloud server is needed; install Java runtime environment, MySQL database, Nginx proxy service
Server Configuration
The minimum configuration of the cloud server is 2 cores and 8G, CPU-intensive, hard disk depends on the data volume collected (120G+)
Language and Framework
-
Backend: Java 1.8, Spring Boot 2.7, MyBatis, MyBatis-Plus, Shiro, Sa-Token, Thymeleaf, HikariCP
-
Frontend: Vue 3, Ant Design, Axios, Qs, Moment, Validate
-
Data: MySQL 8.0+
-
Development Tools: IDEA