go-bacnet
BACnet/IP client: discovery, properties, COV and alarms, routed networks and foreign-device registration.
go get github.com/otfabric/go-bacnetAll projects are public on GitHub and MIT-licensed unless a repository says otherwise. Entries marked Planned are on the roadmap and have no public repository yet.
Pure Go clients and servers. No cgo.
BACnet/IP client: discovery, properties, COV and alarms, routed networks and foreign-device registration.
go get github.com/otfabric/go-bacnetIEC 60870-5-104 controlling and controlled station, with the full APCI state machine and redundancy groups.
go get github.com/otfabric/go-iec104IEC 61850 client and server with logical nodes, reports, controls and SCL as first-class Go types.
go get github.com/otfabric/go-iec61850MMS (ISO 9506) client and server, the transport underneath IEC 61850.
go get github.com/otfabric/go-mmsModbus client and server: TCP, RTU, ASCII, TLS and UDP, typed register codecs, pooling and retries.
go get github.com/otfabric/go-modbusOPC UA client and server: secure channels, subscriptions, events, methods and historical access.
go get github.com/otfabric/go-opcuaSiemens S7 client: read and write DBs, inputs, outputs and markers, discovery and SZL diagnostics.
go get github.com/otfabric/go-s7commSunSpec over Modbus: discovers 112 built-in models and decodes typed, scaled values. Includes the sunspecctl CLI.
go get github.com/otfabric/go-sunspecNo protocol libraries for this protocol yet.
Command-line tools to discover, read, write and diagnose devices.
Discover BACnet devices, list point lists, read, write at priority, monitor COV and inspect alarms.
Interrogate, monitor and command IEC 104 stations, transfer files, or simulate an RTU from YAML.
Browse IED data models, read and write, operate controls, subscribe to reports and parse SCL.
Deterministic, stateful Modbus TCP device simulator driven by JSON fixtures, for integration tests.
Identify, fingerprint, scan, poll, decode and write Modbus devices. Record to MCAP and replay as a simulator.
Discover, browse, read, write, call methods, monitor, read history and export from OPC UA servers.
Siemens S7 command-line client for ISO-on-TCP (port 102).
No cli tools for this protocol yet.
Transport layers shared by the protocol libraries.
COTP TP0 transport service over RFC 1006, plus a full X.224 TPDU codec.
go get github.com/otfabric/go-cotpCross-platform serial ports for RS-232 and RS-485, with a Modbus RTU preset.
go get github.com/otfabric/go-serialTPKT framing for RFC 1006 and RFC 2126 transport profiles.
go get github.com/otfabric/go-tpktNo building blocks for this protocol yet.
Find out what is actually running on a network.
OT protocol fingerprinting from transport framing and handshake behaviour, without application-layer requests.
go get github.com/otfabric/go-otfpNo discovery for this protocol yet.
Dockerized reference stacks that test implementations against each other.
BACnet/IP reference devices: BACnet Stack, BACpypes3, BACnet4J, System.IO.BACnet and Worldiety.
IEC 104 reference stations: lib60870, OpenMUC j60870 and wendy512.
MMS and IEC 61850 adapter images for libiec61850 and IEC61850bean.
Modbus TCP reference stacks: libmodbus, PyModbus, digitalpetri, NModbus and tokio-modbus.
OPC UA reference clients and servers based on open62541 and Eclipse Milo.
Fixture-driven Snap7 servers (native and pure Python) for testing S7 clients.
No interop suites for this protocol yet.
Graphical applications built on the libraries.
Graphical tools built on the same libraries. None are public yet.
No ui apps for this protocol yet.
Let AI agents work with industrial devices through the Model Context Protocol.
A structured, safe way for AI agents to discover, read and work with industrial devices.
No mcp servers for this protocol yet.
Move OT data into IT, cloud and analytics systems.
Move OT data safely into the IT, cloud and analytics systems that need it.
No gateways and connectors for this protocol yet.