Skip to content
Open Source OPC UA Application Server and OPC UA Client/Server C++ Libraries
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc move cfg directory to doc directory Jan 27, 2017
docs added command to export path directory for linux May 16, 2019
script fix bug in install developer script Jan 27, 2017
src fix checking callbacks in MonitorManager May 5, 2019
.appveyor.yml remove cache Jan 7, 2019
.gitattributes use CRLF for build.bat Jan 3, 2019
.gitignore ignore CLion files May 5, 2019
BUGS remove bug description Apr 27, 2017
CHANGELOG.rst update CHANGELOG May 5, 2019
Dockerfile fix script Nov 11, 2018
LICENSE add lincense in English Oct 27, 2018 replace license in German Oct 27, 2018
NOTICE git reset Oct 7, 2016 rename old README -> Sep 18, 2018
README.rst fix example link Apr 6, 2019
build.bat use CRLF for build.bat Jan 3, 2019 allow relative install path Mar 18, 2019
docker-compose.yml use docker-compose for travis tests Dec 23, 2018
test.bat added test script to start unittest Sep 15, 2017




ASNeG OPC UA Stack is an open source framework for development and distribution of OPC UA client\server applications. It provides SDK to write your applications in C++ and an infrastructure to run and distribute them.

The stack contains the following parts:

  • OpcUaStackClient is a client library, which can be used to implement a client OPC UA application in C++.
  • OpcUaStackServer is a server library, which can be used to implement a server OPC UA application in C++.
  • OPC UA Application Server provides a server environment to run user OPC UA client\server applications as dynamic libraries.
  • OPC UA Project Generator helps to create and distribute a new user application for Application Server.

All parts of the stack are cross-platform and support Linux and Windows operation systems.


  • SDK for Client\Server application
  • Application Server to run OPC UA application as dynamic libraries
  • Settings and OPC UA information model in XML format
  • Auto-generating a user application frame
  • Support Docker
  • Support DEB and RPM package types to distribute user applications on Linux
  • Support MSI package type to distribute user applications on Windows

In the development stage:

  • Code generator to create C++ classes representing OPC UA types, objects and events from XML (Nodesets)
  • Multi-thread model (currently all application modules run in only one thread)
  • PubSub (Part 14) implementation

The information about the coverage of OPC UA specification you can find here


See here.


In order to create a user application OPC UA Stack provides a project builder:

$ OpcUaProjectBuilder3 MyProject ProjectDescription 9012

The builder creates a template of OPC UA application project in directory MyProject. The template is ready to be compiled and installed. Below there is an example for local installation (DEB installation is also possible):

$ cd MyPorject
$ sh local

The user application is installed in directory $HOME/.ASNeG or C:ASNeG by default. And you can run it by using OPC UA Server:

$ OpcUaServer3 $HOME/install/etc/OpcUaStack/MyProject/OpcUaServer.xml

The server reads the setting from file OpcUaServer.xml and runs the user application. Now the application is available via OPC UA protocol on port 9012.

For more information about how to write your own OPC UA client server application see example and ASNeG-Demo.


You can’t perform that action at this time.