Deployment and Installation
QAROS ships each release in two flavors (release and demo) as these artifacts:
| Artifact | For whom | Contents |
|---|---|---|
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 folder | bin/ 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 apps | The same Hub processes and runtime, installed once per system |
Unity ZIP (QAROS Unity <version>.zip) | Unity developers | The Unity packages (runtime included) and devices/ |
C# NuGet (Quaternar.Qaros, Quaternar.Qaros.Demo) | .NET developers | The 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:
| File | Device |
|---|---|
android/QAROS Player Quest <version>.apk | Meta Quest |
android/QAROS Player MetaLens <version>.apk | P&C Solutions METALENSE 2 |
hololens/QAROS Player HoloLens <version>.msix (+ .cer, Dependencies/) | HoloLens 2 |
README.md | Install steps for each |
Installing a Hub from the runtime ZIP
- Unzip the archive to a writable location.
- 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 startqar-runtime-launcher.exeorqar-streaming-viz.exedirectly. - 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.
- 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
7445alone no longer lets a device pair. Discovery additionally uses UDP multicast239.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.
| Install | Data root | Log 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%\quaternar | Same as the data root |
| Any, overridden | The folder in the QAR_APP_DATA_ROOT environment variable | Same as the data root |
| Logs of | Folder |
|---|---|
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.
logFolderin 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:
- Request the QAROS runtime ZIP from quaternar.com.
- 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.
- 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.