Skip to content
Projects

Project catalog

All 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.

Protocol

Protocol libraries

Pure Go clients and servers. No cgo.

go-bacnet

BACnet/IP client: discovery, properties, COV and alarms, routed networks and foreign-device registration.

go get github.com/otfabric/go-bacnet

go-iec104

IEC 60870-5-104 controlling and controlled station, with the full APCI state machine and redundancy groups.

go get github.com/otfabric/go-iec104

go-iec61850

IEC 61850 client and server with logical nodes, reports, controls and SCL as first-class Go types.

go get github.com/otfabric/go-iec61850

go-mms

MMS (ISO 9506) client and server, the transport underneath IEC 61850.

go get github.com/otfabric/go-mms

go-modbus

Modbus client and server: TCP, RTU, ASCII, TLS and UDP, typed register codecs, pooling and retries.

go get github.com/otfabric/go-modbus

go-opcua

OPC UA client and server: secure channels, subscriptions, events, methods and historical access.

go get github.com/otfabric/go-opcua

go-s7comm

Siemens S7 client: read and write DBs, inputs, outputs and markers, discovery and SZL diagnostics.

go get github.com/otfabric/go-s7comm

go-sunspec

SunSpec over Modbus: discovers 112 built-in models and decodes typed, scaled values. Includes the sunspecctl CLI.

go get github.com/otfabric/go-sunspec

CLI tools

Command-line tools to discover, read, write and diagnose devices.

bacnetctl

Discover BACnet devices, list point lists, read, write at priority, monitor COV and inspect alarms.

iec104ctl

Interrogate, monitor and command IEC 104 stations, transfer files, or simulate an RTU from YAML.

iec61850ctl

Browse IED data models, read and write, operate controls, subscribe to reports and parse SCL.

modbus-simulator

Deterministic, stateful Modbus TCP device simulator driven by JSON fixtures, for integration tests.

modbusctl

Identify, fingerprint, scan, poll, decode and write Modbus devices. Record to MCAP and replay as a simulator.

opcuactl

Discover, browse, read, write, call methods, monitor, read history and export from OPC UA servers.

s7commctl

Siemens S7 command-line client for ISO-on-TCP (port 102).

Building blocks

Transport layers shared by the protocol libraries.

go-cotp

COTP TP0 transport service over RFC 1006, plus a full X.224 TPDU codec.

go get github.com/otfabric/go-cotp
  • Siemens S7
  • IEC 61850 / MMS
GitHub

go-serial

Cross-platform serial ports for RS-232 and RS-485, with a Modbus RTU preset.

go get github.com/otfabric/go-serial

go-tpkt

TPKT framing for RFC 1006 and RFC 2126 transport profiles.

go get github.com/otfabric/go-tpkt
  • Siemens S7
  • IEC 61850 / MMS
GitHub

Discovery

Find out what is actually running on a network.

go-otfp

OT protocol fingerprinting from transport framing and handshake behaviour, without application-layer requests.

go get github.com/otfabric/go-otfp

Interop suites

Dockerized reference stacks that test implementations against each other.

bacnet-interop

BACnet/IP reference devices: BACnet Stack, BACpypes3, BACnet4J, System.IO.BACnet and Worldiety.

iec104-interop

IEC 104 reference stations: lib60870, OpenMUC j60870 and wendy512.

mms-interop

MMS and IEC 61850 adapter images for libiec61850 and IEC61850bean.

modbus-interop

Modbus TCP reference stacks: libmodbus, PyModbus, digitalpetri, NModbus and tokio-modbus.

opcua-interop

OPC UA reference clients and servers based on open62541 and Eclipse Milo.

snap7-interop

Fixture-driven Snap7 servers (native and pure Python) for testing S7 clients.

UI apps

Graphical applications built on the libraries.

UI apps

Planned

Graphical tools built on the same libraries. None are public yet.

MCP servers

Let AI agents work with industrial devices through the Model Context Protocol.

OT MCP servers

Planned

A structured, safe way for AI agents to discover, read and work with industrial devices.

Gateways and connectors

Move OT data into IT, cloud and analytics systems.

IT2OT gateways and connectors

Planned

Move OT data safely into the IT, cloud and analytics systems that need it.