Skip to main content

Architecture overview

Hyprism contains three .NET 10 projects and a separate Docusaurus documentation application

Sources/
Hyprism.Core/ game, accounts, persistence, contracts
Hyprism.Desktop/ Avalonia application and platform adapters
Hyprism.LocalNode/ loopback HTTPS service and process controller
Tests/
Hyprism.Core.Tests/
Hyprism.Desktop.Tests/
Hyprism.LocalNode.Tests/
Docs/ bilingual documentation site
Packaging/ platform publishers and installer assets

Project dependenciesโ€‹

Desktop references Core and Local Node. Local Node references Core. Core has no dependency on Avalonia and exposes the contracts used by both hosts

BoundaryOwnerDetails
Domain services and persisted stateCoreCore responsibilities
Views, commands, native dialogs, browser linksDesktopDesktop composition
Autonomous authentication and local compatibility APILocal NodeProtocol and lifecycle
Installation and game processesCore with host capabilitiesLaunch workflow
Storage, migrations, and diagnosticsEach owning serviceData and cache

There is no Electron host, web frontend, IPC bridge, or generated TypeScript API in the launcher. Desktop calls C# interfaces directly

Startup and shutdownโ€‹

  1. Desktop configures rendering, launcher version, and the shared HTTP user agent
  2. Bootstrapper.Initialize creates Core services and applies host registrations
  3. App creates the window, localizer, native file picker, URI launcher, and view models
  4. Asynchronous initialization prepares optional remote data while the loading screen is visible
  5. Window shutdown cancels bootstrap work, disposes view models and services, and closes the launcher log

A Local Node already attached to a game has a separate lifetime and continues until that game exits

Where to add behaviorโ€‹

Put game, account, download, or persistence rules in Core. Put presentation state and operating-system UI in Desktop. Extend Local Node only for its loopback service or companion process lifecycle

Use the contract reference before adding another service, and cover changes with the matching test suite

Source: Bootstrapper, Desktop startup, Local Node host

Edit this page on GitHub