{"id":15014313,"url":"https://github.com/mqttsnet/thinglinks","last_synced_at":"2025-05-14T18:05:14.739Z","repository":{"id":37724018,"uuid":"407425852","full_name":"mqttsnet/thinglinks","owner":"mqttsnet","description":"a high-performance, high-throughput, and highly scalable IoT platform! A single instance can support millions of connections. It offers powerful custom extension capabilities. Built with Netty as the communication layer component, it supports plugin-based development and integration!","archived":false,"fork":false,"pushed_at":"2025-03-06T08:17:26.000Z","size":24196,"stargazers_count":1018,"open_issues_count":2,"forks_count":215,"subscribers_count":32,"default_branch":"main","last_synced_at":"2025-04-08T06:33:30.294Z","etag":null,"topics":["iot","java","mqtt","netty","reactor3","springcloud","vue"],"latest_commit_sha":null,"homepage":"http://www.mqttsnet.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mqttsnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-17T06:07:31.000Z","updated_at":"2025-04-03T09:07:30.000Z","dependencies_parsed_at":"2024-03-28T12:38:14.928Z","dependency_job_id":"0e232da7-94a6-4f7f-8ca0-3189df30ba03","html_url":"https://github.com/mqttsnet/thinglinks","commit_stats":{"total_commits":512,"total_committers":22,"mean_commits":"23.272727272727273","dds":0.49609375,"last_synced_commit":"441b9cdf60fe191359f6bbf986d5406cfa2d8cd8"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqttsnet%2Fthinglinks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqttsnet%2Fthinglinks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqttsnet%2Fthinglinks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mqttsnet%2Fthinglinks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mqttsnet","download_url":"https://codeload.github.com/mqttsnet/thinglinks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198514,"owners_count":22030965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["iot","java","mqtt","netty","reactor3","springcloud","vue"],"created_at":"2024-09-24T19:45:27.398Z","updated_at":"2025-05-14T18:05:09.730Z","avatar_url":"https://github.com/mqttsnet.png","language":"JavaScript","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n[![MQTTSNET Logo](./doc/imgs/logo.png)](http://www.mqttsnet.com)\n\n\u003c/div\u003e\n\n## ThingLinks | [中文文档](README.zh_CN.md)\n\n# Introduction to ThingLinks Platform\n\nThis system utilizes the Spring Cloud microservice architecture, providing a high-performance, high-throughput, highly-scalable IoT platform. On a single server, it can support millions of connections. Additionally, it boasts customizable extension features for various protocol interactions and supports plug-in development.\n\n\n\n[![OSCS Status](https://www.oscs1024.com/platform/badge/mqttsnet/thinglinks.svg?size=small)](https://www.oscs1024.com/project/mqttsnet/thinglinks?ref=badge_small)\n\n## Tech Stack\n\n1、Adopts a front-end and back-end separation approach using the VUE framework for the frontend.\n\n2、The backend utilizes Spring Boot, Spring Cloud \u0026 Alibaba.\n\n3、MqttBroker (supports cluster deployment) is based on Netty, Reactor3, Reactor-netty.\n\n4、The registration center and configuration center are based on Nacos while authentication uses Redis.\n\n5、The traffic control framework is Sentinel and distributed transactions are managed by Seata.\n\n6、The time-series database used is TDengine, an efficient open-source IoT big data platform, capable of handling massive IoT data write-ins and load queries.\n\n\n## Core Features\n\nUnified product model management, supporting various devices from different manufacturers.\n\nUnified device connection management with multi-protocol adaptability (MQTT, WebSocket, TCP, UDP, CoAP, HTTP, etc).\n\nA flexible rule engine for device alarms, message notifications, and data forwarding.\nDevice geographic location visualization.\n\nTDengine time-series database design concept: one table per device, one super-table per device type.\n\n## Documentation\n\n- [Official Documentation](https://mqttsnet.yuque.com/gt6zkc/thinglinks?# 《ThingLinks物联网一体化平台》)\n\n## Overall Platform Architecture\n\n![](doc/imgs/overallArchitecture.png)\n\n## Functional Architecture\n\n![](doc/imgs/functionalArchitecture.png)\n\n## Core Function List\n\nSystem Management: User Management, Role Management, Menu Management, Department Management, Post Management, Dictionary Management, Parameter Settings, Notifications, Log Management\n\nSystem Monitoring: Online Users, Scheduled Tasks, Sentinel Console, Nacos Console, Admin Console, Task Scheduling Management\n\nSystem Tools: Form Builder, Code Generator, System API\n\nDevice Integration: Device Management (supports MQTT, WebSocket, and TCP-IP protocols), Sub-device Management, Product Management, Protocol Management, Rule Engine (for device interlinking)\n\nDevice Debugging: Real-time Logs, Command Issuance\n\nRule Engine Message Forwarding: Supports KAFKA, HTTP, PREDICATE, ROCKET_MQ, RABBIT_MQ, MYSQL, MQTT, TOPIC, and LOG nodes.\n\n\n## Development Roadmap\n\nWe are currently focused on the development of the Pro version, with the open-source version lagging behind. Gradual open-sourcing will be done in the future. Stay tuned!\n\n*、Rule engine-device interlinking (development completed, lacking alarm information configuration)\n\n*、APP mobile side-My Devices (in progress)\n\n*、Alarm management (planning: DingTalk push, email push, etc.)\n\n*、Large screen display (client, message publish/subscribe, alarms) (in planning)\n\n## Demo Images\n\n![](doc/imgs/deviceIntegration/img.png)\n\n![](doc/imgs/deviceIntegration/img_0.png)\n\n![](doc/imgs/deviceIntegration/img_1.png)\n\n![](doc/imgs/deviceIntegration/img_2.png)\n\n![](doc/imgs/deviceIntegration/img_3.png)\n\n![](doc/imgs/deviceIntegration/img_4.png)\n\n![](doc/imgs/deviceIntegration/img_5.png)\n\n![](doc/imgs/deviceIntegration/img_6.png)\n\n## Business Cooperation \u0026 Code Contribution\n\nIf you're interested in participating in project development or engaging in business cooperation, please contact the mqttsnet team at mqttsnet@163.com.\n\n## Contributors\n\nThanks these wonderful people, welcome to join us:   \n[贡献者指南](CONTRIBUTING.md)\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/xiaonannet\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/57425893?s=400\u0026u=7e19afcd215072e56e0168c6717342456b174b68\u0026v=4\" width=\"100px;\" alt=\"xiaonannet\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003exiaonannet\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=xiaonannet\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=xiaonannet\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#xiaonannet\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=lvwshuai\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lovely-shisen\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/32031196?s=400\u0026u=7e19afcd215072e56e0168c6717342456b174b68\u0026v=4\" width=\"100px;\" alt=\"lovely-shisen\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elovely-shisen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=lovely-shisen\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=lovely-shisen\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#lovely-shisen\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/whb-11\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/95611581?v=4\" width=\"100px;\" alt=\"wanghoubang\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ewhb-11\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=whb-11\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=whb-11\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003ca href=\"#lovely-shisen\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kangkaime\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4422866?v=4\" width=\"100px;\" alt=\"kangkaime\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ekangkaime\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=kangkaime\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=kangkaime\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e      \n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lvwshuai\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2986900?v=4\" width=\"100px;\" alt=\"lvwshuai\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elvwshuai\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=lvwshuai\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/andyz168\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/22382971?v=4\" width=\"100px;\" alt=\"andyz168\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eandyz168\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=andyz168\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/llJam\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/113015997?v=4\" width=\"100px;\" alt=\"llJam\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ellJam\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=llJam\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/qianmenfei\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/39989430?v=4\" width=\"100px;\" alt=\"qianmenfei\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eqianmenfei\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=qianmenfei\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/wangfan1997\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/108504684?v=4\" width=\"100px;\" alt=\"wangfan1997\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ewangfan1997\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mqttsnet/thinglinks/commits?author=wangfan1997\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## Related Links\n\nBifroMQ is a high-performance MQTT messaging middleware with a native multi-tenant architecture. Open-sourced by Baidu.\n\n- [Official Website](bifromq.io)\n- [Github](https://github.com/baidu/bifromq)\n\nHigh-efficiency MQTT Broker: SMQTTX\n\n- [Github](https://github.com/quickmsg/smqttx)\n- [Gitee](https://gitee.com/quickmsg/smqttx)\n- [GitCode](https://gitcode.com/quickmsg/smqttx)\n\n## Issues (Feedback is appreciated)\n\n[issues](https://github.com/mqttsnet/thinglinks/issues)\n\n## Submit a PR\n\n[pr-\u003efeat/contrbute](https://github.com/mqttsnet/thinglinks/pulls)\n\n## License\n\n[Apache License, Version 2.0](LICENSE)\n\n[Thanks to JetBrains for providing a free IDEA License](https://www.jetbrains.com)\n\n## Copyright Notice\n\nThingLinks Open Source Platform adheres to the Apache License, Version 2.0. Commercial use is allowed, but it's imperative to retain attribution and copyright information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqttsnet%2Fthinglinks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmqttsnet%2Fthinglinks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmqttsnet%2Fthinglinks/lists"}