Page 1 of 1

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

Posted: 11 Jul 2011, 15:02
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.

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

Posted: 04 Feb 2014, 18:08
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.