Skip to content

Releases: open62541/open62541

v1.5.2

20 Feb 23:02
12ae25e

Choose a tag to compare

This open62541 release v1.5.2 is the second maintenance release of the 1.5 release series.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

Important changes compared to the previous v1.5.1 release include:

  • server: Don't require the client to send an ApplicationCertificate to decrypt the authentication token
  • server: Use the SecurityPolicy of the SecureChannel also for the UserIdentityToken (if not #None)
  • deps: Update ua-nodeset submodule to UA-1.05.06-2025-11-08

Diff stat: 40 files changed, 384 insertions(+), 219 deletions(-)

New features and major changes compared to the previous 1.4 release series include:

  • core: JSON de/encoding according to the OPC UA 1.05 specification
  • core: XML de/encoding of Variants (also with multi-dimensional arrays) and structure-types
  • core: UA_String_format with shorthands to print OPC UA builtin types
  • arch: Support for FreeRTOS (using the lwip EventLoop)
  • arch: Support for QNX
  • arch: Support for Zephyr
  • server: Support for "local" Event-MonitoredItems
  • server: Extended async operations (read/write/call)
  • server: Improved value source API for VariableNodes
  • server: Implement CertificateGroup handling
  • server: Support for GDS push operations
  • client: Transparent mapping between local and remote namespace-indices
  • client: Automatically read the NamespaceArray during connect (add to the namespace mapping)
  • client: Support for Event-MonitoredItems
  • client: All async service APIs are typed
  • client: Load DataTypeDefinitions from the server at runtime
  • pubsub: Support for manual de/encoding of PubSub messages
  • pubsub: Custom state machine for PubSubComponents to integrate communication backends
  • pubsub: Public API to compute offset tables for fixed Network-/DataSetMessages
  • pubsub: Improved loading of PubSub configurations from a (binary) file
  • pubsub: Initial support for SKS
  • nodeset-compiler: Use the native XML decoding to parse attributes at runtime
  • util: Query language (and parser) for EventFilter, RelativePath, etc.
  • util: Convert DataTypeDefinition into UA_DataType (internal representation)
  • eventloop: EventLoop can be cancelled to immediately return from a "poll-sleep"
  • eventloop: Option to limit the number of sockets open at the same time
  • eventloop: Support for lwip-based EventLoop
  • plugins: Crypto PKI/SecurityGroup with a file-system storage backend
  • plugins: Support for ECC-based SecurityPolicies (OpenSSL only)
  • tools: "Shell mode" for the ua-cli terminal client

v1.5.1

18 Feb 19:33
319c4bb

Choose a tag to compare

This open62541 release v1.5.1 is the first maintenance release of the 1.5 release series.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

Important changes compared to the previous v1.5.0 release include:

  • core: Force nonce generation of at least 32 byte in the SecureChannel
  • core: Initialize memory to zero in UA_ByteString_allocMemory
  • core: Optimize bitfield size in UA_DataType
  • arch: Check return value of getsockname in UDP_registerListenSocket (#7720)
  • client: Don't close the SecureChannel when the servers sends a late response
  • client: Create a dedicated "UserTokenPolicy" SecurityPolicy instance for authentication
  • client: Only allow the config->authSecurityPolicies for certificate-based authentication
  • server: Workaround clients using a nonce that is too short but still >= 32 byte
  • server: Block transfer subscription between anonymous users
  • server: Workaround for clients who don't set the encryption algorithm URI in the UserIdentityToken
  • server: Track transferred subscriptions for correct diagnostics counter update
  • server: Use constant-time string compare for username/password
  • server: For x509 authentication, validate with the "sessionPKI" before going into the AccessControl plugin
  • nodeset-compiler: use proper valuerank default if not set
  • plugins: Check for correct RSA/ECC local certificate type when initializing the SecurityPolicies

Diff stat: 66 files changed, 1672 insertions(+), 989 deletions(-)

New features and major changes compared to the previous 1.4 release series include:

  • core: JSON de/encoding according to the OPC UA 1.05 specification
  • core: XML de/encoding of Variants (also with multi-dimensional arrays) and structure-types
  • core: UA_String_format with shorthands to print OPC UA builtin types
  • arch: Support for FreeRTOS (using the lwip EventLoop)
  • arch: Support for QNX
  • arch: Support for Zephyr
  • server: Support for "local" Event-MonitoredItems
  • server: Extended async operations (read/write/call)
  • server: Improved value source API for VariableNodes
  • server: Implement CertificateGroup handling
  • server: Support for GDS push operations
  • client: Transparent mapping between local and remote namespace-indices
  • client: Automatically read the NamespaceArray during connect (add to the namespace mapping)
  • client: Support for Event-MonitoredItems
  • client: All async service APIs are typed
  • client: Load DataTypeDefinitions from the server at runtime
  • pubsub: Support for manual de/encoding of PubSub messages
  • pubsub: Custom state machine for PubSubComponents to integrate communication backends
  • pubsub: Public API to compute offset tables for fixed Network-/DataSetMessages
  • pubsub: Improved loading of PubSub configurations from a (binary) file
  • pubsub: Initial support for SKS
  • nodeset-compiler: Use the native XML decoding to parse attributes at runtime
  • util: Query language (and parser) for EventFilter, RelativePath, etc.
  • util: Convert DataTypeDefinition into UA_DataType (internal representation)
  • eventloop: EventLoop can be cancelled to immediately return from a "poll-sleep"
  • eventloop: Option to limit the number of sockets open at the same time
  • eventloop: Support for lwip-based EventLoop
  • plugins: Crypto PKI/SecurityGroup with a file-system storage backend
  • plugins: Support for ECC-based SecurityPolicies (OpenSSL only)
  • tools: "Shell mode" for the ua-cli terminal client

v1.4.16

18 Feb 17:21
f63e2a8

Choose a tag to compare

This is the sixtienth patch release v1.4.16 of the 1.4 release series of open62541.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

The important changes compared to the previous release v1.4.15 are:

  • server: Block transfer of subscriptions between anonymous users
  • server: Track transferred subscriptions for correct diagnostics counter update
  • client: Don't close the SecureChannel when the servers sends a late async response
  • pubsub: Add null check after UA_Array_new in addDataSetReaderConfig
  • pubsub: Prevent NULL dereference in UA_DataSetMessage_decodeBinary
  • pubsub: Initialize value in UA_NetworkMessage_decodePayload to avoid undefined behavior

New features and major changes compared to the previous release series 1.3 include:

  • core: Switch to an EventLoop model for the control flow
  • core: Support for OpenSSL 3.0
  • core: Add the Aes256-Sha256-RsaPss security policy
  • core: Automatically unwrap ExtensionObject arrays inside UA_Variant
  • core: txtime feature for time-based sending of Ethernet packets (Linux only)
  • client/server/pubsub: Server, Client and PubSub API are thread-safe with internal locks
  • client/server: Private key password protection with a userland callback (client and server)
  • client/server: Authentication with x509 certificates (client and server)
  • client/server: Support for session-specific server locales (nodes can have localized Description and DisplayName)
  • client: Make connection properties in the client accessible via the API
  • client: Allow setting a custom SessionName in the client config
  • client: Consider the request timeoutHint in synchronous service calls of the client
  • server: Implementation of the TransferSubscription and Cancel Service
  • server: File-based server configuration using a JSON5 configuration file
  • server: Make Session properties in the server accessible via the API
  • server: Use an encrypted SecureChannel for registering at a Discovery Server
  • server: MonitoredItems with negative sampling interval (linked to the publish interval of the Subscription)
  • server: Integration with the NodesetLoader project for runtime parsing and integration of Nodeset XML files
  • server: Session and Subscription Diagnostics as part of the server object
  • server: Support for the AccessLevelEx attribute
  • server: Support for EventFilters
  • server: ReverseConnect for the Server
  • server: Use config->shutdownDelay delay for the server shutdown
  • server: Use dedicate PKI for SecureChannel and Session certificates
  • pubsub: Support for the PubSub SKS (Security Key Service)
  • pubsub: Support for PubSub UDP Unicast
  • pubsub: PubSub StandaloneSubscribedDataSets information model representation

v1.5.0

02 Feb 06:00
b90fbfa

Choose a tag to compare

This release v1.5.0 is the first of the 1.5 release series of open62541.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

Important changes compared to the previous v1.5.0-rc2 release candidate include:

  • server: Internal getNodeType returns node with only selected attributes and references
  • server: Auto-switch from reference arrays to reference trees
  • server: Move UA_Node_insertOrUpdateDisplayName/Description into the public Nodestore API
  • server: Improve logging of the AddNodes service
  • server: The server can load custom datatypes "internally" at runtime
  • server: Keep dedicated authentication SecurityPolicy to the Session
  • server: Use the session PKI (CertificateGroup) to re-validate the client certificate during CreateSession
  • server: use UA_ByteString_memZero to wipe private key
  • server: The static rx/tx buffer size from the EventLoop is used for the ConnectionConfig
  • client: Use the ApplicationCertificate during CreateSession from the SecurityPolicy that will be used to authenticate in ActivateSession
  • deps: Update the nodeset loader to the upstream master
  • deps: Fix incorrect padding handling in deps/base64.c
  • nodeset-compiler: Generate members array for enum types
  • tests: Add fuzzing of PubSub binary NetworkMessage decoding
  • tests: Add fuzzing of PubSub JSON NetworkMessage decoding
  • build: Enable win32 and posix compatible amalgamation with UA_ARCHITECTURE=none

Diff stat against the previous v1.5.0-rc2: 93 files changed, 3328 insertions(+), 1885 deletions(-)

New features and major changes compared to the previous 1.4 release series include:

  • core: JSON de/encoding according to the OPC UA 1.05 specification
  • core: XML de/encoding of Variants (also with multi-dimensional arrays) and structure-types
  • core: UA_String_format with shorthands to print OPC UA builtin types
  • arch: Support for FreeRTOS (using the lwip EventLoop)
  • arch: Support for QNX
  • arch: Support for Zephyr
  • server: Support for "local" Event-MonitoredItems
  • server: Extended async operations (read/write/call)
  • server: Improved value source API for VariableNodes
  • server: Implement CertificateGroup handling
  • server: Support for GDS push operations
  • client: Transparent mapping between local and remote namespace-indices
  • client: Automatically read the NamespaceArray during connect (add to the namespace mapping)
  • client: Support for Event-MonitoredItems
  • client: All async service APIs are typed
  • client: Load DataTypeDefinitions from the server at runtime
  • pubsub: Support for manual de/encoding of PubSub messages
  • pubsub: Custom state machine for PubSubComponents to integrate communication backends
  • pubsub: Public API to compute offset tables for fixed Network-/DataSetMessages
  • pubsub: Improved loading of PubSub configurations from a (binary) file
  • pubsub: Initial support for SKS
  • nodeset-compiler: Use the native XML decoding to parse attributes at runtime
  • util: Query language (and parser) for EventFilter, RelativePath, etc.
  • util: Convert DataTypeDefinition into UA_DataType (internal representation)
  • eventloop: EventLoop can be cancelled to immediately return from a "poll-sleep"
  • eventloop: Option to limit the number of sockets open at the same time
  • eventloop: Support for lwip-based EventLoop
  • plugins: Crypto PKI/SecurityGroup with a file-system storage backend
  • plugins: Support for ECC-based SecurityPolicies (OpenSSL only)
  • tools: "Shell mode" for the ua-cli terminal client

v1.4.15

02 Feb 20:25
45e4cd3

Choose a tag to compare

This is the fiftienth patch release v1.4.15 of the 1.4 release series of open62541.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

The important changes compared to the previous release v1.4.14 are:

  • core: Remove usage of the "enc() | enc()" pattern as the order of bitwise ORed method calls is undefined in C
  • server: Avoid comparing a scalar value and a null-array when detecting deadband value changes
  • client: Add workaround for PEM certificates
  • pubsub: Prevent NULL dereference in UA_PubSubDataSetField_sampleValue (#7632)
  • plugins: Extend expiresInDays range for OpenSSL cert creation on 32 bit
  • nc: Reorder parsing of LocalizedText fields
  • build: List private dependencies in .pc file

New features and major changes compared to the previous release series 1.3 include:

  • core: Switch to an EventLoop model for the control flow
  • core: Support for OpenSSL 3.0
  • core: Add the Aes256-Sha256-RsaPss security policy
  • core: Automatically unwrap ExtensionObject arrays inside UA_Variant
  • core: txtime feature for time-based sending of Ethernet packets (Linux only)
  • client/server/pubsub: Server, Client and PubSub API are thread-safe with internal locks
  • client/server: Private key password protection with a userland callback (client and server)
  • client/server: Authentication with x509 certificates (client and server)
  • client/server: Support for session-specific server locales (nodes can have localized Description and DisplayName)
  • client: Make connection properties in the client accessible via the API
  • client: Allow setting a custom SessionName in the client config
  • client: Consider the request timeoutHint in synchronous service calls of the client
  • server: Implementation of the TransferSubscription and Cancel Service
  • server: File-based server configuration using a JSON5 configuration file
  • server: Make Session properties in the server accessible via the API
  • server: Use an encrypted SecureChannel for registering at a Discovery Server
  • server: MonitoredItems with negative sampling interval (linked to the publish interval of the Subscription)
  • server: Integration with the NodesetLoader project for runtime parsing and integration of Nodeset XML files
  • server: Session and Subscription Diagnostics as part of the server object
  • server: Support for the AccessLevelEx attribute
  • server: Support for EventFilters
  • server: ReverseConnect for the Server
  • server: Use config->shutdownDelay delay for the server shutdown
  • server: Use dedicate PKI for SecureChannel and Session certificates
  • pubsub: Support for the PubSub SKS (Security Key Service)
  • pubsub: Support for PubSub UDP Unicast
  • pubsub: PubSub StandaloneSubscribedDataSets information model representation

v1.3.17

02 Feb 20:08
41f4dee

Choose a tag to compare

This is the seventienth patch release for the 1.3 release family of open62541.
The notable changes in this patch release are:

  • fix(server): Avoid comparing a scalar value and a null-array when detecting deadband value changes
  • fix(plugins): Use the session parameters feature instead of storing data in the SessionContext
  • fix(plugin): fix namelist allocated from scandir not freed

open62541 (http://open62541.org/) is an open source and free implementation of OPC UA (OPC Unified Architecture) written in the common subset of the C99 and C++98 languages. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent. All platform-specific functionality is implemented via exchangeable plugins. Plugin implementations are provided for the major operating systems.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed as part of proprietary software. Only changes to the files of the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

New features compared to the previous release series 1.2 include:

  • Support for OPC UA PubSub encryption (also TPM-based key handling)
  • Session authentication with x509 certificates (server-side)
  • Support for Event Filters
  • Support for Server Diagnostics
  • Binary/JSON encoding as a stable public API
  • Handling of Subscriptions with different priority
  • Greatly improved Nodeset Compiler, including support for structure values
  • Added UA_order function for all data types (equality test / absolute ordering for binary search trees, etc.)
  • Support for TLS-encrypted MQTT-based PubSub
  • Internally generate temporary self-signed certificates

Besides the major functional additions, many small features, fixes and general improvements went into this release. Particularly, the memory consumption of the information model was reduced by about 1/3 compared to the 1.2 release series.

Note that the v1.3 release family contains new features compared to v1.0. These have not been part of the certification that was achieved for the example server based on the v1.0 release.

v1.5.0-rc2

04 Jan 22:10
15c54da

Choose a tag to compare

v1.5.0-rc2 Pre-release
Pre-release

This is the second release candidate v1.5.0-rc2 of the 1.5 release series of open62541.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

Important changes compared to the previous v1.5.0-rc1 release candidate include:

  • core: Add support for C11 thread-local variables
  • core: Remove UA_ENABLE_PARSING config; always enable parsing features
  • core: Detect more cpu-architectures for fast iee754 decoding
  • core: UA_DataType_fromStructureDefinition generates padding faithful to the corresponding C-structures
  • arch: Fix IEEE 802.1Q VLAN TCI Creation/Parsing
  • server: Identify the SecurityPolicy by the postfix in the UserTokenPolicy
  • server: Add UA_NAMESPACE_ZERO=NONE option to support pre-filled Nodestore plugins
  • server: Application notification about changes to Sessions / SecureChannels / Subscriptions / MonitoredItems
  • client: Cleanup/reorder the client config definition
  • client: Add the allowNonePolicyPassword config flag
  • util: Provide human-readable names of the SecurityModes and use for logging
  • plugins: Modify the SecurityPolicy API to always forward the policy-pointer and the channel context (needed for ECC cleanup)

Diff stat against the previous v1.5.0-rc1: 181 files changed, 9819 insertions(+), 8289 deletions(-)

New features and major changes compared to the previous 1.4 release series include:

  • core: JSON de/encoding according to the OPC UA 1.05 specification
  • core: XML de/encoding of Variants (also with multi-dimensional arrays) and structure-types
  • core: UA_String_format with shorthands to print OPC UA builtin types
  • arch: Support for FreeRTOS (using the lwip EventLoop)
  • arch: Support for QNX
  • arch: Support for Zephyr
  • server: Support for "local" Event-MonitoredItems
  • server: Extended async operations (read/write/call)
  • server: Improved value source API for VariableNodes
  • server: Implement CertificateGroup handling
  • server: Support for GDS push operations
  • client: Transparent mapping between local and remote namespace-indices
  • client: Automatically read the NamespaceArray during connect (add to the namespace mapping)
  • client: Support for Event-MonitoredItems
  • client: All async service APIs are typed
  • client: Load DataTypeDefinitions from the server at runtime
  • pubsub: Support for manual de/encoding of PubSub messages
  • pubsub: Custom state machine for PubSubComponents to integrate communication backends
  • pubsub: Public API to compute offset tables for fixed Network-/DataSetMessages
  • pubsub: Improved loading of PubSub configurations from a (binary) file
  • pubsub: Initial support for SKS
  • nodeset-compiler: Use the native XML decoding to parse attributes at runtime
  • util: Query language (and parser) for EventFilter, RelativePath, etc.
  • util: Convert DataTypeDefinition into UA_DataType (internal representation)
  • eventloop: EventLoop can be cancelled to immediately return from a "poll-sleep"
  • eventloop: Option to limit the number of sockets open at the same time
  • eventloop: Support for lwip-based EventLoop
  • plugins: Crypto PKI/SecurityGroup with a file-system storage backend
  • plugins: Support for ECC-based SecurityPolicies (OpenSSL only)
  • tools: "Shell mode" for the ua-cli terminal client

v1.4.14

20 Oct 12:10
76e425e

Choose a tag to compare

This is the fourtienth patch release v1.4.14 of the 1.4 release series of open62541.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

The important changes compared to the previous release v1.4.13 are:

  • core: Ensure that only quiet NAN are used for float/double
  • server: Check access rights for async method execution
  • server: Check the NodeClass before processing an async method
  • client: Remove memleak in async processing
  • client: use after free in client asyncServiceCalls

New features and major changes compared to the previous release series 1.3 include:

  • core: Switch to an EventLoop model for the control flow
  • core: Support for OpenSSL 3.0
  • core: Add the Aes256-Sha256-RsaPss security policy
  • core: Automatically unwrap ExtensionObject arrays inside UA_Variant
  • core: txtime feature for time-based sending of Ethernet packets (Linux only)
  • client/server/pubsub: Server, Client and PubSub API are thread-safe with internal locks
  • client/server: Private key password protection with a userland callback (client and server)
  • client/server: Authentication with x509 certificates (client and server)
  • client/server: Support for session-specific server locales (nodes can have localized Description and DisplayName)
  • client: Make connection properties in the client accessible via the API
  • client: Allow setting a custom SessionName in the client config
  • client: Consider the request timeoutHint in synchronous service calls of the client
  • server: Implementation of the TransferSubscription and Cancel Service
  • server: File-based server configuration using a JSON5 configuration file
  • server: Make Session properties in the server accessible via the API
  • server: Use an encrypted SecureChannel for registering at a Discovery Server
  • server: MonitoredItems with negative sampling interval (linked to the publish interval of the Subscription)
  • server: Integration with the NodesetLoader project for runtime parsing and integration of Nodeset XML files
  • server: Session and Subscription Diagnostics as part of the server object
  • server: Support for the AccessLevelEx attribute
  • server: Support for EventFilters
  • server: ReverseConnect for the Server
  • server: Use config->shutdownDelay delay for the server shutdown
  • server: Use dedicate PKI for SecureChannel and Session certificates
  • pubsub: Support for the PubSub SKS (Security Key Service)
  • pubsub: Support for PubSub UDP Unicast
  • pubsub: PubSub StandaloneSubscribedDataSets information model representation

v1.3.16

20 Oct 12:00
e5a7dc0

Choose a tag to compare

This is the sixtienth patch release for the 1.3 release family of open62541.
The notable changes in this patch release are:

  • fix(core): Ensure that only quiet NAN are used for float/double
  • fix(server): Fix a locking issue in browseWithContinuation
  • fix(server): Check access rights for async method execution
  • fix(server): Check the NodeClass before processing an async method
  • fix(client): use after free in client asyncServiceCalls
  • feat(client): Check if the "CreatedAt" timestamp of the SecurityToken matches the current system clock - consistently use monotonic clock internally

open62541 (http://open62541.org/) is an open source and free implementation of OPC UA (OPC Unified Architecture) written in the common subset of the C99 and C++98 languages. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent. All platform-specific functionality is implemented via exchangeable plugins. Plugin implementations are provided for the major operating systems.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed as part of proprietary software. Only changes to the files of the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

New features compared to the previous release series 1.2 include:

  • Support for OPC UA PubSub encryption (also TPM-based key handling)
  • Session authentication with x509 certificates (server-side)
  • Support for Event Filters
  • Support for Server Diagnostics
  • Binary/JSON encoding as a stable public API
  • Handling of Subscriptions with different priority
  • Greatly improved Nodeset Compiler, including support for structure values
  • Added UA_order function for all data types (equality test / absolute ordering for binary search trees, etc.)
  • Support for TLS-encrypted MQTT-based PubSub
  • Internally generate temporary self-signed certificates

Besides the major functional additions, many small features, fixes and general improvements went into this release. Particularly, the memory consumption of the information model was reduced by about 1/3 compared to the 1.2 release series.

Note that the v1.3 release family contains new features compared to v1.0. These have not been part of the certification that was achieved for the example server based on the v1.0 release.

v1.5.0-rc1

25 Sep 20:07

Choose a tag to compare

v1.5.0-rc1 Pre-release
Pre-release

This is the first release candidatee v1.5.0-rc1 of the 1.5 release series of open62541.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

New features and major changes compared to the previous 1.4 release series include:

  • core: JSON de/encoding according to the OPC UA 1.05 specification
  • core: XML de/encoding of Variants (also with multi-dimensional arrays) and structure-types
  • core: UA_String_format with shorthands to print OPC UA builtin types
  • arch: Support for FreeRTOS (using the lwip EventLoop)
  • arch: Support for QNX
  • arch: Support for Zephyr
  • server: Support for "local" Event-MonitoredItems
  • server: Extended async operations (read/write/call)
  • server: Improved value source API for VariableNodes
  • server: Implement CertificateGroup handling
  • server: Support for GDS push operations
  • client: Transparent mapping between local and remote namespace-indices
  • client: Automatically read the NamespaceArray during connect (add to the namespace mapping)
  • client: Support for Event-MonitoredItems
  • client: All async service APIs are typed
  • client: Load DataTypeDefinitions from the server at runtime
  • pubsub: Support for manual de/encoding of PubSub messages
  • pubsub: Custom state machine for PubSubComponents to integrate communication backends
  • pubsub: Public API to compute offset tables for fixed Network-/DataSetMessages
  • pubsub: Improved loading of PubSub configurations from a (binary) file
  • pubsub: Initial support for SKS
  • nodeset-compiler: Use the native XML decoding to parse attributes at runtime
  • util: Query language (and parser) for EventFilter, RelativePath, etc.
  • util: Convert DataTypeDefinition into UA_DataType (internal representation)
  • eventloop: EventLoop can be cancelled to immediately return from a "poll-sleep"
  • eventloop: Option to limit the number of sockets open at the same time
  • eventloop: Support for lwip-based EventLoop
  • plugins: Crypto PKI/SecurityGroup with a file-system storage backend
  • plugins: Support for ECC-based SecurityPolicies (OpenSSL only)
  • tools: "Shell mode" for the ua-cli terminal client