Skip to main content
Version: 0.9.0 (next)

Deployment and Installation

QAROS ships each release in two flavors (release and demo) as these artifacts:

ArtifactFor whomContents
Runtime ZIP (QAROS <version>.zip, QAROS Demo <version>.zip)Running QAROS with no install and no admin rights: a lab PC, a CI box, a shared folderbin/ with the Hub processes (qaros-hub-service, qar-runtime-launcher, qar-streaming-viz), the C API library and every runtime DLL, the CA tooling, assets and the qar-vulkan-source example app; include/ with the C API header; devices/ with the device player apps
System installer (QAROS Hub <version>.msixbundle, QAROS Hub Demo <version>.msixbundle)Machines that should have one runtime installed and shared by all their source appsThe same Hub processes and runtime, installed once per system
Unity ZIP (QAROS Unity <version>.zip)Unity developersThe Unity packages (runtime included) and devices/
C# NuGet (Quaternar.Qaros, Quaternar.Qaros.Demo).NET developersThe C# binding; copies the native runtime next to the application on build and publish

Every ZIP has one top-level folder and carries CHANGELOG.md, third_party_licenses.md and README-Licensing.md. Installer and runtime ZIP are both fully supported; pick the ZIP when you cannot or do not want to install.

The device player apps are in devices/ of every ZIP:

FileDevice
android/QAROS Player Quest <version>.apkMeta Quest
android/QAROS Player MetaLens <version>.apkP&C Solutions METALENSE 2
hololens/QAROS Player HoloLens <version>.msix (+ .cer, Dependencies/)HoloLens 2
README.mdInstall steps for each

Installing a Hub from the runtime ZIP​

  1. Unzip the archive to a writable location.
  2. Start bin/qaros-hub-service.exe. It starts the launcher and the visualizer and puts the QAROS icon in the tray. Always start QAROS this way: do not start qar-runtime-launcher.exe or qar-streaming-viz.exe directly.
  3. Open the visualizer and set up your source apps there (see Source Applications). Hub configuration is persistent across restarts. File-based launcher settings are listed in the Launcher Configuration Reference.
  4. Make sure the firewall permits the QAROS port range 19120-19200 (TCP+UDP). It carries session traffic and, since the onboarding (pairing) listener moved into it, onboarding too: a rule for TCP 7445 alone no longer lets a device pair. Discovery additionally uses UDP multicast 239.77.77.77:7445. (The installer registers these rules automatically; for ZIP installs create them once or accept the Windows prompt.)

Where data and logs live​

The data root holds everything the Hub keeps between runs: identity slots, CA state, session state and persisted Hub configuration. It is outside the install directory, so upgrading is "replace the folder". The log root holds the log files of a run.

InstallData rootLog root
Runtime ZIP%LOCALAPPDATA%\Quaternar\Qaros%TEMP%\quaternar\logs
System installer%LOCALAPPDATA%\Packages\<package family name>\LocalState\Quaternar%TEMP%\quaternar\logs (Windows may redirect it into the package's LocalCache)
Development build (run from a build tree)%TEMP%\quaternar\worktrees\<worktree id> when started by qaros-hub-service, else %TEMP%\quaternarSame as the data root
Any, overriddenThe folder in the QAR_APP_DATA_ROOT environment variableSame as the data root
Logs ofFolder
Tray (qaros-hub-service), including the launcher's console output<log root>\qaros-hub-service; launcher crash dumps in its crashes subfolder
Launcher and every process it starts (visualizer, source apps, mixer)<log root>\qar-launcher-default\<session-id>, emptied when the Hub starts
  • Deleting the data root resets the Hub: devices must onboard again.
  • The visualizer keeps its settings and window layout (imgui.ini) under <data root>\streaming-viz, never next to the executable.
  • Copy the log folder before restarting the Hub if you need it.
  • logFolder in the launcher configuration moves the launcher logs.

Installing with the system installer​

The installer puts the Hub on the machine as a regular Windows app, registers the firewall rules and an optional autostart task (qaros-hub-service). Release and demo install side by side under distinct identities. Start QAROS Hub from the Start menu; it runs qaros-hub-service.exe, as with the ZIP.

The installer is being reworked into a classic installer that source applications can share the runtime from. Until then, applications built on the Unity package or the C# NuGet still carry their own runtime copy.

Installing player apps on devices​

For HoloLens 2, P&C Solutions METALENSE 2, and Meta Quest, use the dedicated step-by-step guide in Player Installation to Device. That section links to the device-specific install pages for HoloLens Device Portal deployment and Android ADB-based installation.

The SDK package for integrators (this repository)​

This repository (qaros) is the public SDK: it contains the C API header (the single-file qar_streaming.h), compiled examples, and this documentation. The runtime binaries are delivered separately:

  1. Request the QAROS runtime ZIP from quaternar.com.
  2. Unzip its contents into the repository's package/ directory, giving:
package/
bin/ # qar-streaming-c.dll, qar-runtime-launcher and every runtime DLL
include/ # the header matching the binary version
devices/ # device player apps

The runtime ZIP carries no import library: applications load the C API dynamically from bin/ (see Developer Guide: Getting Started). Deploy bin/ whole; do not copy single DLLs out of it.

  1. Build the examples against it (see Developer Guide: Getting Started).

System requirements​

Hub hardware, OS, network, and per-device requirements have their own page: see System Requirements.

Versioning, compatibility, and upgrades​

The C API compatibility promise and how to upgrade across the artifact matrix are covered in Maintenance & Updates.