open-source · model-driven · OPC UA

One design file.
A complete OPC UA server.

quasarnova is a family of model-driven OPC UA server engines for industrial control. You describe your device in a single XML design; an engine turns it into a running, standards-compliant server — pip-installable Python, or industrial C++ with OPC UA Pub/Sub and FX shipped. Same file, no code generation, no vendor lock-in.

Get started Documentation $ pip install kilonova

How it works

The design is the single source of truth: your objects, variables, methods, types and constraints, in one declarative file. Engines consume it directly — the address space, configuration validation and device-logic plumbing come for free, and every engine serves the same server.

Design.xml — your device model
<d:class name="PowerSupply">
  <d:cachevariable name="voltage"
      dataType="OpcUa_Double" ... />
  <d:sourcevariable name="current"
      addressSpaceRead="synchronous" ... />
  <d:method name="switchOn"/>
</d:class>
terminal — a live server in seconds
$ pip install kilonova
$ kilonova run --design Design.xml \
               --config config.xml
serving on opc.tcp://0.0.0.0:4841/  (Ctrl-C to stop)

# device logic is plain Python:
@server.read("ps1.current")
def read_current(obj):
    # blocking is fine — runs in a thread pool
    return driver.read_current()

A family of engines

Same design language, different engines — each built for the place where it is strongest. Named for the brightest events in the sky.

kilonova AVAILABLE NOW
Python engine

The same design file served in pure Python — no code generation, no compiler, no build step. Device simulators, test rigs, FAT/SAT stand-ins, CI test doubles and edge gateways, live in seconds. Blocking device logic is safe by design. Passes the upstream framework's complete public conformance suite on every commit.

PyPI version · docs · repo
supernova RELEASED
C++ engine

The full model-driven framework: generated address space, device-logic scaffolding, configuration and build system — extended with OPC UA Pub/Sub (publisher and subscriber) and OPC UA FX (servers declare their datasets; any OPC UA client wires them together at runtime), identical on both supported OPC UA stacks. For the servers that run the plant.

Latest release · repo
hypernova RELEASED
Interchange fabric

Names over coordinates for the family's data: a registry that doubles as a live browser, relays for crossing network boundaries, bridges to DIP and classic OPC UA — and the OPC UA FX connection manager, wiring supernova servers together with one command and showing the resulting streams live, by name, in the browser.

Latest release · repo

On the roadmap, no code yet: dwarfnova (typed client libraries generated from the same design) and rednova (SCADA/HMI integration derived from the model).

Principles

One model, many engines

The design file is the contract. Engines may differ in language and runtime; the server a client sees is the same, attribute by attribute.

Conformance, proven

kilonova passes the complete public conformance suite of the upstream quasar framework — every case, checked on every commit, re-checked nightly against upstream's master.

Strict by default

Strict validation, no silent drops, loud warnings where an engine does less than the model asks. What an engine cannot do, it says out loud — at run time and in the docs.

Open source, no lock-in

supernova is LGPL-3.0; kilonova is BSD-2-Clause. Standard OPC UA on the wire, standard tooling everywhere else. Leave whenever you like — you won't want to.

Heritage. quasarnova builds on the lineage of the open-source quasar framework (LGPL-3.0), developed at CERN and running large-scale control systems for more than a decade. quasarnova is an independent project and is not affiliated with or endorsed by CERN. supernova is a fork of quasar and preserves its copyright and license notices in full.