Hosting
What runs a UI for the VpnHood app on each platform: an Avalonia UI on Android, iOS, the desktop and in a browser; a web UI in a native web view; or a .NET MAUI UI. On Windows and Linux the app can run as a machine service, with a window for each person who signs in.
When to use it
- You show VpnHood's Avalonia UI, or an Avalonia UI of your own, on any platform.
- Your UI is a web app, shown in a native web view.
- You install the app on Windows or Linux as a machine service.
Which package to take
- Avalonia: Hosting.Avalonia, with Avalonia.Android, Avalonia.Ios, Avalonia.Desktop or Avalonia.Browser.
- A desktop service and its window: Hosting.Desktop and Desktop.Daemon, with Desktop.Linux, Desktop.WindowsTun or Desktop.WindowsVpnPlugin. Desktop.Abstractions is what a desktop host and its UI agree on.
- A web view: Hosting.WebView, with WebView.Android, WebView.Ios or WebView.Windows.
- .NET MAUI: Hosting.Maui, on Android and Windows.
Its packages
| Package | What it does | |
|---|---|---|
| VpnHood.AppUi.Hosting.Avalonia | What mounts any Avalonia UI for the VpnHood app: the Application every host builds and the contract a UI fulfils. | Overview · API |
| VpnHood.AppUi.Hosting.Avalonia.Android | Hosts the VpnHood Avalonia UI in an Android activity | Guide · API |
| VpnHood.AppUi.Hosting.Avalonia.Browser | Runs any VpnHood Avalonia UI as a browser page: the app's web host serves it to a paired device, and the page dials the app's API over HTTP. | Overview · API |
| VpnHood.AppUi.Hosting.Avalonia.Desktop | Runs the VpnHood Avalonia UI in a desktop window on Windows and Linux | Overview · API |
| VpnHood.AppUi.Hosting.Avalonia.Ios | Hosts the VpnHood Avalonia UI in an iOS app: the application delegate a head's AppDelegate derives from | Overview · API |
| VpnHood.AppUi.Hosting.Desktop | The VpnHood desktop window: the window over a running app's own API, one per person and session, and the host that runs the app and its window in one process. | Overview · API |
| VpnHood.AppUi.Hosting.Desktop.Abstractions | What a desktop host and a desktop UI agree on - IDesktopUi, what the host hands it, and where a UI's window opens - so that UI packages and hosts both reference this, and neither references the other | Overview · API |
| VpnHood.AppUi.Hosting.Desktop.Daemon | The VpnHood desktop service: the daemon that is the app on a machine with no window, the commands that drive it over its own API, the channel that hands that API to an administrator, and its updater. | Overview · API |
| VpnHood.AppUi.Hosting.Desktop.Linux | The VpnHood desktop host on Linux: systemd is the service, /opt is the install, XDG is the cache, and root is who runs the daemon. | Overview · API |
| VpnHood.AppUi.Hosting.Desktop.WindowsTun | The VpnHood desktop host on Windows: a LocalSystem service is the app, ProgramData is its storage, and the window, the tray and the commands run as whoever is signed in. | Overview · API |
| VpnHood.AppUi.Hosting.Desktop.WindowsVpnPlugin | The VpnHood desktop host on the Windows VPN plug-in, from an MSIX package: the app and its window run in one process as whoever is signed in, LocalState is their storage, and Windows' own VPN host holds the tunnel. | Overview · API |
| VpnHood.AppUi.Hosting.Maui | Hosts the VpnHood app under a .NET MAUI UI on Android and Windows, in the app's own process: the platform's start, the Android activity's events, and the app's API for the MAUI pages | Overview · API |
| VpnHood.AppUi.Hosting.WebView | Platform-neutral controller that hosts the app web UI in a native web view; each platform supplies a thin IWebView adapter. | Guide · API |
| VpnHood.AppUi.Hosting.WebView.Android | Hosts the app web UI in an Android WebView: the application and the main activity a head derives from, over its IWebView adapter and web-view clients | Overview · API |
| VpnHood.AppUi.Hosting.WebView.Ios | Hosts the app web UI in an iOS WKWebView: the IWebView adapter and the view controller a head mounts as its root | Overview · API |
| VpnHood.AppUi.Hosting.WebView.Windows | Hosts the app web UI in a Win32 window through WebView2, with no UI framework: the IWebView adapter, the main window, and WindowsWebViewUi, the UI a Windows head names to show the app that runs in its service | Overview · API |