// the find
awcullen/opcua
OPC Unified Architecture (OPC UA) in Go.
A Go implementation of OPC UA — the industrial automation communication protocol — with both client and server support. Targets IIoT developers who need to talk to PLCs, SCADA systems, or industrial sensors from Go without going through a C library binding. The protocol spec is enormous and most implementations cut corners; this one appears to take it seriously.
The binary encoder is genuinely fast — 10x fewer allocations than gopcua is not a rounding error, it's a different design. Code generation for the OPC UA schema types (enums, status codes, node IDs) is the right call; hand-maintaining 1500 types would be a disaster. Both client and server are included, which matters because most use cases require at least some server-side presence for method callbacks. The example tests in the client package are actually runnable and test against a real in-process server, not mocks.
111 stars in a fairly niche domain is fine, but it means the community is thin — bugs you hit are likely yours to fix. The README is essentially a badge and a benchmark; there is no explanation of what security policies are supported, what OPC UA profiles are implemented, or what is missing from the spec. Discovery service support is not visible in the tree, which is a practical problem in real plant networks where you don't know server endpoints in advance. No apparent CI configuration or release tagging visible in the tree, so tracking breaking changes requires reading commits.