What Open Source third-parties does the C++ UA Server use?

Frequently Asked Questions. Please look here first before you ask questions in one of the forums.
Post Reply
User avatar
Support Team
Hero Member
Hero Member
Posts: 2532
Joined: 18 Mar 2011, 15:09

What Open Source third-parties does the C++ UA Server use?

Post by Support Team »

Besides the OPC Foundation's ANSI C UA Stack (OPC UA communication stack)
the C++ UA Server SDK only requires OpenSSL and LibXml2.

OpenSSL is an Open Source component, but is not licensed under the terms of GPL. It has its own OpenSSL License.

It can also be used in commercial products and mainly requires an acknowledgement:
"This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit"

For more information, please see OpenSSL License.

The architecture of the ANSI C UA Stack also allows to replace the OpenSSL Crypto Provider in the UA Stack platformlayer with another implementation.

LibXml2 is available under the MIT License.

Attention: LibXml2 can optionally be compiled with libiconv support. libiconv is another Open Source component which is licensed under the LGPL, which may be a problem in commercial products. Hence you should deactivate libiconv support in LibXml2 when compiling LibXml2 yourself.

Why is LibXml2 needed at all?
At the moment it is only used for the ServerConfigXml class which is a ServerConfig subclass and only used for XML based server configuration in our examples. By using any other ServerConfig subclass, e.g. ini file or database configuration, you can completely remove the LibXml2 dependency.
See ServerConfig for the interface description.
Best regards
Unified Automation Support Team

User avatar
Support Team
Hero Member
Hero Member
Posts: 2532
Joined: 18 Mar 2011, 15:09

Re: What Open Source third-parties does the C++ UA Server us

Post by Support Team »

With C++ SDK version 1.4 the XML parser is also used to load UANodeSet XML files and to handle type dictionaries for structure data types. Both features can be used in client and server side.

Post Reply