Awesome Open Source
Awesome Open Source

Artwork by Ashley McNamara - Inspired by Renee French - Taken from by Mat Ryer


A native Go implementation of the OPC/UA Binary Protocol.

You need go1.13 or higher. We test with the current and previous Go version.

CircleCI GitHub GoDoc GolangCI License Version


# make sure you have go1.13 or higher

# install library
go get -u

# get current date and time 'ns=0;i=2258'
go run examples/datetime/datetime.go -endpoint opc.tcp://localhost:4840

# read the server version
go run examples/read/read.go -endpoint opc.tcp://localhost:4840 -node 'ns=0;i=2261'

# get the current date time using different security and authentication modes
go run examples/crypto/*.go -endpoint opc.tcp://localhost:4840 -cert path/to/cert.pem -key path/to/key.pem -sec-policy Basic256 -sec-mode SignAndEncrypt

# checkout examples/ for more examples...


The gopcua project is sponsored by the following organizations by supporting the active committers to the project:

Northvolt evosoft


We would also like to list organizations which use gopcua in production. Please open a PR to include your logo below.



We are still actively working on this project and the APIs will change.

We have started to tag the code to support go modules and reproducible builds but there is still no guarantee of API stability.

However, you can safely assume that we are aiming to make the APIs as stable as possible. :)

The Current State was moved to the Wiki.

Your Help is Appreciated

If you are looking for ways to contribute you can

  • test the high-level client against real OPC/UA servers
  • add functions to the client or tell us which functions you need for gopcua to be useful
  • work on the security layer, server and other components
  • and last but not least, file issues, review code and write/update documentation

Also, if the library is already useful please spread the word as a motivation.


The Gopcua Team.

If you need to get in touch with us directly you may find us on but try to create an issue first.

Supported Features

The current focus is on the OPC UA Binary protocol over TCP. No other protocols are supported at this point.

Categories Features Supported Notes
Encoding OPC UA Binary Yes
OPC UA JSON not planned
OPC UA XML not planned
Transport UA-TCP UA-SC UA Binary Yes
OPC UA HTTPS not planned
SOAP-HTTP WS-SC UA Binary not planned
SOAP-HTTP WS-SC UA XML not planned
SOAP-HTTP WS-SC UA XML-UA Binary not planned
Encryption None Yes
Basic128Rsa15 Yes
Basic256 Yes
Basic256Sha256 Yes
Authentication Anonymous Yes
User Name Password Yes
X509 Certificate Yes


The current set of supported services is only for the high-level client.

Service Set Service Supported Notes
Discovery Service Set FindServers
GetEndpoints Yes
Secure Channel Service Set OpenSecureChannel Yes
CloseSecureChannel Yes
Session Service Set CreateSession Yes
CloseSession Yes
ActivateSession Yes
Node Management Service Set AddNodes
View Service Set Browse Yes
BrowseNext Yes
RegisterNodes Yes
UnregisterNodes Yes
Query Service Set QueryFirst
Attribute Service Set Read Yes
Write Yes
HistoryRead Yes
Method Service Set Call Yes
MonitoredItems Service Set CreateMonitoredItems Yes
DeleteMonitoredItems Yes
Subscription Service Set CreateSubscription Yes
Publish Yes
DeleteSubscriptions Yes



Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
go (14,148
golang (3,605
protocol (182
scada (26
ics (22
opc-ua (22

Find Open Source By Browsing 7,000 Topics Across 59 Categories