// the find
ThingsGateway/ThingsGateway
ThingsGateway is a cross-platform, high-performance gateway for edge data acquisition and IoT connectivity. Developed with .NET 8, it offers a suite of powerful tools, including advanced PLC communication libraries and debugging software.
ThingsGateway is a .NET 8/10 industrial IoT edge gateway for collecting data from PLCs and industrial devices and forwarding it upstream via MQTT, OPC-UA, databases, or Kafka. It targets factory-floor scenarios — Modbus, S7, OPC — where you need a configurable bridge between legacy hardware and cloud infrastructure. The Blazor UI handles channel/device/variable configuration and runtime monitoring.
Plugin architecture separates southbound (collect) from northbound (business output) cleanly — adding a new protocol or output target doesn't touch core. The variable scan-packing optimization (batching register reads) is the right call for Modbus/S7 performance and shows the authors know industrial polling patterns. Cross-platform with x64 and ARM64 Docker images means it can run on cheap edge hardware like Raspberry Pi or industrial PCs. The Foundation library publishes independently to NuGet, so you can use just the driver layer without pulling in the whole gateway stack.
The most capable protocols (FINS, EtherNet/IP, IEC 104, SECS) are behind a paid PRO tier with no public pricing — you'll need to evaluate the open-source version before discovering your target PLC requires a purchase. Documentation is primarily Chinese with partial English translation; the README is bilingual but the linked docs site and internal wiki are not, which is a real friction point for non-Chinese teams. The project lives primarily on Gitee (Chinese GitHub equivalent) and GitHub stars (1.4k) are well below the Gitee star count, suggesting the Western developer community hasn't found it yet — which means thinner Stack Overflow/forum coverage when something breaks. C# scripting for edge transforms (CSScript/) adds power but also a meaningful attack surface and operational complexity if you're running untrusted config.