quasar

quasar logo

quasar

Quick OPC UA Server Generation Framework

CI Deploy documentation GitHub Release License: LGPL v3 Documentation


quasar generates complete OPC UA servers from a single Design XML file. From that design it produces C++ address space classes, device logic scaffolding, configuration parsing, and a CMake build system – so you focus on your device logic, not boilerplate.

Developed at CERN, quasar is used across multiple laboratories and experiments to build reliable control and monitoring systems.

Quick start

Clone

git clone --recursive https://github.com/quasar-team/quasar

The --recursive flag is required – quasar uses LogIt as a git submodule.

Build

./quasar.py set_build_config <path/to/config.cmake>
./quasar.py build

Run

./build/bin/OpcUaServer --config_file bin/config.xml

How it works

Design/Design.xml
    |
    v
DesignInspector (xpath) + Oracle (type mappings)
    |
    v
Jinja2 templates (23 transforms)
    |
    v
Generated C++ source (AddressSpace, Device bases, Configuration, CMake)

Design.xml is the single source of truth. Generated code goes into AddressSpace/, Device/generated/, and Configuration/. User-owned device logic lives in D<Class> files which are never overwritten.

Features

Prerequisites - Python 3 with lxml, Jinja2, colorama - CMake 3.16+ - C++11 compiler - Boost - xsdcxx (CodeSynthesis XSD)

Documentation

Full documentation is available at quasar.docs.cern.ch, covering the design manual, command reference, build system, and video tutorials.

License

This project is licensed under the GNU Lesser General Public License v3.0. See LICENSE for details.

Contact

Primary contact: quasar-developers@cern.ch