Skip to content

Releases: open62541/open62541

v1.4.6

06 Oct 12:48
50ae40d
Compare
Choose a tag to compare

This is the sixth patch release v1.4.6 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.5 are:

  • server: Clear the SecureChannel only after logging and statistics counting
  • server: Support decryption of IssuedIdentityToken
  • client: The client can listen on multiple sockets for reverse connections
  • client: Use SO_REUSEADDR sockets for the client listening for reverse connections
  • client: Refactor the endpoint and UserIdentityToken selection
  • client: Only send the old AuthenticationToken once ActivateSession/CloseSession is requested
  • pubsub: Fix potential double free in the SKS client config
  • plugins: Disable the Basic128Rsa15 and Basic256 SecurityPolicy
  • plugins: Don't enable Basic128Rsa15 and Basic256 SecurityPolicies by default for authentication

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

06 Oct 12:43
Compare
Choose a tag to compare

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

  • fix(plugins): Disable the Basic128Rsa15 and Basic256 SecurityPolicy by default

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

02 Oct 20:02
d1c154c
Compare
Choose a tag to compare

This is the fifth patch release v1.4.5 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.4 are:

  • core: Fix type access when comparing ExtensionObjects
  • core: Fix UA_EXPORT annotations for UA_DataType handling
  • core: add UA_EXPORT for UA_DataType_getStructMember
  • server: Fix a double-free after adjusting a value type
  • server: Fix handling of ternary logic NULL in EventFilters
  • server: Allow changing the namespace1 URI before calling UA_Server_startup
  • server: Use the correct SecurityPolicy to verify the UserTokenSignature
  • client: Fix a buffer length check in ua_client_connect.c
  • pubsub: Silence errors on PubSub connections with a timeout to avoid logging floods
  • pubsub: Fix a NULL access exception in DataSetReader
  • pubsub: Close the correct connection in UA_WriterGroup_disconnect
  • plugins: More thorough certificate validation (mbedTLS and OpenSSL)
  • deps: Bump LibreSSL to 3.7.2
  • deps: Bump mdnsd submodule

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

02 Oct 19:51
47336a7
Compare
Choose a tag to compare

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

  • fix(core): Fix type access when comparing ExtensionObjects
  • fix(core): Fix UA_EXPORT annotations for UA_DataType handling
  • fix(server): Select correct SecurityPolicy to verify UserTokenSignature
  • fix(plugins): More thorough certificate validation (mbedTLS and OpenSSL)
  • fix(plugin): Always clean up the previously configured certificate verification plugin
  • refactor(deps): Bump LibreSSL to 3.7.2
  • refactor(deps) update mdnsd submodule refernce

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

09 Aug 09:37
f3e334c
Compare
Choose a tag to compare

This is the fourth patch release v1.4.4 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.3 are:

  • arch: Fix setting the source address in the Ethernet frame
  • arch: Use the correct time-interval for the MQTT keep-alive ping
  • deps: Base64 decoding fails when input-length not a multiple of 4

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

09 Aug 09:30
3dd3cdf
Compare
Choose a tag to compare

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

  • fix(server): Check history backend for event support in history-read service
  • fix(core): Reversed binary encoding and decoding for DiagnosticInfo
  • fix(deps): Base64 decoding fails when input-length not a multiple of 4

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

09 Aug 09:23
a7f5371
Compare
Choose a tag to compare

This is the tenth patch release for the 1.2 release family of open62541.
There were only bugfixes and no API-breaking changes applied for the patch release.
Changes compared to the previous release include:

  • fix(deps): Base64 decoding fails when input-length not a multiple of 4

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.1 are:

  • Support for additional OPC UA Services (SetTriggering, TransferSubscription)
  • Support for more data-types: structures with optional fields and for unions
  • Support for pretty-printing of OPC UA data-types
  • Support for parsing of standard-defined human-readable NodeIds, BrowsePaths, etc.
  • Support for OpenSSL-based encryption and certificate validation
  • Support for WebSocket Secure (wss)
  • Improved support for Events and Alarms&Conditions
  • Improved support for PubSub subscribers
  • Improved support for realtime PubSub by integration with external interrupt handling and a configurable realtime "fast path"
  • Update to the v1.04 nodeset definitions from the OPC Foundation

Besides the major functional additions, many small features, fixes and general improvements went into this release.

With the release of the release candidate, the API for the 1.2 release series is frozen. Only fixes and non-breaking changes will be integrated going forward. Note that the v1.2 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.4.3

26 Jul 15:02
a709a0e
Compare
Choose a tag to compare

This is the third patch release v1.4.3 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.2 are:

  • arch: Use port zero for dynamic port assignment
  • server: additional check for history backend configuration
  • server: Use local hostname if none given for LDS-ME
  • server: Fix discoveryUrl initialisation
  • server: Check bounding properly before converting time until next scheduled callback
  • client: Fix async read of NodeClass
  • client: Return all endpoints without requiring user identity token configuration
  • client: Make UA_Client_connectSecureChannel_async properly async
  • build: Always define UA_HAS_GETIFADDR on UNIX
  • build: Fix use of CMake target description with mbedTLS
  • build: Make UA_SCHEMA_DIR an internal cache variable

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

02 Jul 07:51
22cfafd
Compare
Choose a tag to compare

This is the second patch release v1.4.2 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.1 are:

  • core: Fix default network values in UA_ConnectionConfig_default
  • server: Don't force UA_MESSAGESECURITYMODE_SIGNANDENCRYPT for Discovery if encryption is disabled
  • server: Add ModelChangeEventType and ConditionType to reduced namespace
  • client: Add missing channel state UA_SECURECHANNELSTATE_OPN_SENT
  • client: Fix channel state set to CLOSING without closing underlying connection
  • pubub: Cleanup of the PubSub RT examples
  • nc: Correct setting of the NamespaceIndex
  • plugins: Add missing function in the rsapss security policy for OpenSSL
  • arch: Fix build error with undefined UA_IPV6
  • arch: Fix build error on posix with undefined UA_IPV6
  • build: Correct path for schema files of external build
  • build: Fix OpenSSL link flags in build output files
  • build: Clean soname in shared library
  • build: Define dependencies not exposed in the API as private

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

23 May 15:16
1fea0ec
Compare
Choose a tag to compare

This is the first patch release for 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.

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

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

  • core: JSON encoding fixes
  • server: Fix string output with %*s
  • server: Add missing lock handling for the subscription diagnostics
  • pubsub: Allow interface name to be the local IP address for UDP-multicast
  • arch/server/client: Remove lock assertions with invalid assumptions
  • build: Fix OpenBSD build
  • build: Clean up the Debian package build
  • build: Fix FreeBSD build
  • build: Install the CMake macros as in the v1.4-rc2