NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #1750 by repository stars
Last release 21 days ago
17 Sep 2026
Release timing varies
gaps range from 9 days to 3 months
Most releases are documented
notes for 38 of 56 stable releases
3 versions withdrawn
withdrawn after publishing
8 years old
281 releases · first in 2018
Nothing published for this version
No breaking changes in this release.
Thank you to the contributors in this release: @stefan-kolb, @arpitjain099, @istyf, @jackchenjc, @skartikey, @mschm, and @jminardi.
go get github.com/gopcua/opcua@v0.9.1
gopcua ships both a client and a server. Each item is tagged (client) or (server) for which side it affects, and items that only matter to developers building against the library API carry API. If you consume gopcua through Telegraf or benthos-umh, the plain (client) items are the runtime behavior you get automatically; (server) items only matter if you build a server on gopcua.
No breaking changes in this release.
MaxInt32 could push a process into multi-GB allocation and out-of-memory. Reachable on both sides, by a server decoding a client request and by a client decoding a server or man-in-the-middle response (#884) (client + server)BEGIN PRIVATE KEY) are now accepted wherever a private key is loaded. These are the default output of OpenSSL 3.x, Java and .NET, and previously failed with Failed to decode PEM block with private key; only PKCS#1 (BEGIN RSA PRIVATE KEY) worked (#871) (client + server)BrowseNext, so a client can page through a node that has more references than fit in one response instead of silently receiving a truncated list (#865) (server)Connected with no live subscription and a dead publish loop, delivered no data again, and never retried; it now rebuilds the session and retries, waiting between attempts instead of hammering the server (#877) (client)AccessLevel governs the Value attribute only, so BrowseName, NodeClass, DisplayName and the rest are readable; previously such a node answered Bad_UserAccessDenied for every attribute and could not be described at all (#878) (server)DataType attribute in the ordinary NodeId form. The attribute is spec-typed NodeId, but the server asserted ExpandedNodeId without checking, so a conformant write crashed the process on the next browse that resolved a reference to that node (#867) (server)RegisterNodes now returns the node IDs it was given, which is the required behaviour for a server that performs no node-access optimization, and UnregisterNodes ignores IDs it does not know instead of failing (#867) (server)UserAccessLevel attribute is stored with the type the read path expects, so reading it works (#875) (server)Full Changelog: v0.9.0...v0.9.1
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Breaking change (API): Node operations now run against a Client interface instead of the concrete *Client type ( #847 ). If you construct nodes agains…
Thank you to all the contributors in this release: @jminardi, @diericd, @istyf, @semihbkgr, @skartikey, @sruehl, @mvandergrift, @oliverpool, @skaldesh, @bostroemc, @kung-foo, @mschm, and @led0nk for reviews. It was a difficult year since we switched the core maintainer, and it took us some time to get into a good working mode. This release is our summarized work from the past year.
go get github.com/gopcua/opcua@v0.9.0
gopcua ships both a client and a server. Each item is tagged (client) or (server) for which side it affects, and items that only matter to developers building against the library API carry API. If you consume gopcua through Telegraf or benthos-umh, the plain (client) items are the runtime behavior you get automatically; (client, API) items only matter if you write Go code against gopcua; (server) items only matter if you build a server on gopcua.
Breaking change (API): Node operations now run against a
Clientinterface instead of the concrete*Clienttype (#847). If you construct nodes against the concrete client type, update those call sites. See the "List of Breaking Changes" in the README.
Basic256Sha256 channels now complete a handshake end to end in both Sign and SignAndEncrypt mode between a gopcua client and server, so you can run signed and encrypted connections (client + server)StateChangedFunc callback lets a client run your own code on every connection-state change (Connected, Connecting, Disconnected, Reconnecting), for example to log drops, update health, or trigger reconnect-aware logic (client, API)monitor.ItemError you can read with errors.As (client)EOF; smaller requests and unencrypted connections were not affected (client + server)ExpandedNodeID instead of nil, which previously caused a panic (client)Close on a client that never established a session no longer panics (client)/debug/vars on Go 1.23, where nested stats had shown as empty objects (client, API)Bad_NodeIdUnknown (server)BadTimeout (server)The server now also sets the ReceiverCertificateThumbprint on its handshake response, so strict clients (Prosys, UaExpert) accept encrypted channels against a gopcua server (server).
Full Changelog: v0.8.0...v0.9.0
Thank you to all the contributors in this release: @jminardi , @diericd , @istyf , @semihbkgr , @skartikey , @sruehl , @mvandergrift , @oliverpool , @
Thank you to all the contributors in this release: @jminardi, @diericd, @istyf, @semihbkgr, @skartikey, @sruehl, @mvandergrift, @oliverpool, @skaldesh, @bostroemc, @kung-foo, @mschm, and @led0nk for reviews. It was a difficult year since we switched the core maintainer, and it took us some time to get into a good working mode. This release is our summarized work from the past year.
This is a pre-release for testing. Please try it against your servers and report issues before the final v0.9.0. It installs only on explicit opt-in:
go get github.com/gopcua/opcua@v0.9.0-rc1
gopcua ships both a client and a server. Each item is tagged (client) or (server) for which side it affects, and items that only matter to developers building against the library API carry API. If you consume gopcua through Telegraf or benthos-umh, the plain (client) items are the runtime behavior you get automatically; (client, API) items only matter if you write Go code against gopcua; (server) items only matter if you build a server on gopcua.
Basic256Sha256 channels now complete a handshake end to end in both Sign and SignAndEncrypt mode between a gopcua client and server, so you can run signed and encrypted connections (client + server)StateChangedFunc callback lets a client run your own code on every connection-state change (Connected, Connecting, Disconnected, Reconnecting), for example to log drops, update health, or trigger reconnect-aware logic (client, API)monitor.ItemError you can read with errors.As (client)EOF; smaller requests and unencrypted connections were not affected (client + server)ExpandedNodeID instead of nil, which previously caused a panic (client)Close on a client that never established a session no longer panics (client)/debug/vars on Go 1.23, where nested stats had shown as empty objects (client, API)Bad_NodeIdUnknown (server)BadTimeout (server)The server now also sets the ReceiverCertificateThumbprint on its handshake response, so strict clients (Prosys, UaExpert) accept encrypted channels against a gopcua server (server).
Full Changelog: v0.8.0...v0.9.0-rc1
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
9dfd8bd add DialTimeout and cleanup ResolveEndpoint
a7aa972 Ignore trailing slashes when checking matching endpoints.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
2137c45 - added security mode check when creating the channel to ensure proper securityMode is provided - removed overwrite in readChunk since it will
808cd22 Add unit test for security auth policy uri fallback.
### Retracted since I've tagged the wrong branch ### Only the tag and the CHANGELOG are on the wrong branch. The code is on main.
Nothing published for this version
Nothing published for this version
Nothing published for this version
578c8e5 Merge pull request #775 from gopcua/issue-774-read-failed
3652fd6 Mark datavalue's as having values.
Nothing published for this version
Nothing published for this version
f89c7b6 Merge pull request #764 from jackchenjc/issue-710
subscription: add ModifySubscription functionality
Remove calls to log.Fatal (#762,#763)
uasc: remove debug log (#761,#760)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix Variant to handle nil slices (#755,#678)
Nothing published for this version
Nothing published for this version
Add Wolfram Manufacturing to README
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →