Table of Contents

Client

The VpnHood client engine finds a server, builds a session with it, and runs the session's tunnel on a VPN adapter. Around it: the VPN service that runs the engine on each platform, and the device provider through which the app starts that service. Each has a contract of its own, for code that must not depend on it.

When to use it

  • You connect to VpnHood servers from your own code, without VpnHood's app.
  • You build an app layer of your own on the engine.
  • To build a whole VPN app, start from VpnHood.AppLib.App or the template instead: they put these together for you.

Which package to take

  • The engine: Core.Client.
  • The VPN service, on the side that runs the engine: Core.Client.VpnServices.Host, with the host for your platform - Android, iOS, Linux, WindowsTun or WindowsVpnPlugin.
  • The app's side of that service: Core.Client.VpnServices.Manager, with the device provider for your platform (Core.Client.Devices).
  • Code that must not depend on the engine, such as a UI: Core.Client.Abstractions, for a connection's options, the client's state, its DNS and the errors a connection ends with; Core.Client.VpnServices.Abstractions, for the requests an app sends its VPN service and the connection info it gets back.

Its packages

Package What it does
VpnHood.Core.Client The VpnHood VPN client engine: it finds a server, builds a session with it, and runs the session's tunnel on a VPN adapter. Overview · API
VpnHood.Core.Client.Abstractions What a VpnHood client is told and reports, shared by the app and its VPN service: the connection's options, the client's state, its DNS, and the errors a connection ends with. Overview · API
VpnHood.Core.Client.Devices.Abstractions The device a VpnHood app runs on, as the app sees it: what it supports, how the app starts the VPN service, and its installed apps. Overview · API
VpnHood.Core.Client.Devices.Android VpnHood client device provider for Android: the app's side, and what its VPN service shares Overview · API
VpnHood.Core.Client.Devices.Ios VpnHood client device provider for iOS and tvOS: the app's side, and what its Network Extension shares Overview · API
VpnHood.Core.Client.Devices.Linux VpnHood client device provider for Linux: the app's side, and what its VPN host shares Overview · API
VpnHood.Core.Client.Devices.WindowsTun VpnHood client device provider for Windows with WinTun: the app's side, and what its VPN host shares Overview · API
VpnHood.Core.Client.Devices.WindowsVpnPlugin VpnHood client device provider for the Windows VPN plug-in: the app's side, and what its VPN host shares Overview · API
VpnHood.Core.Client.VpnServices.Abstractions The VPN service contract: the requests the app sends its VPN service and the connection info it gets back, shared by both sides. Overview · API
VpnHood.Core.Client.VpnServices.Host The VPN service's side of the contract: it takes the app's requests, connects with the options the app saved, and reports the connection's state back. Overview · API
VpnHood.Core.Client.VpnServices.Host.Android VpnHood's VPN service on Android: the VPN service's half, which runs the engine Overview · API
VpnHood.Core.Client.VpnServices.Host.Ios VpnHood's VPN service on iOS and tvOS: the Network Extension's half, which runs the engine Overview · API
VpnHood.Core.Client.VpnServices.Host.Linux VpnHood's VPN service on Linux: the VPN host's half, which runs the engine Overview · API
VpnHood.Core.Client.VpnServices.Host.WindowsTun VpnHood's VPN service on Windows with WinTun: the VPN host's half, which runs the engine Overview · API
VpnHood.Core.Client.VpnServices.Host.WindowsVpnPlugin VpnHood's VPN service as the Windows VPN plug-in: the C#/WinRT component Windows activates and calls in the VPN host, and the service it runs Overview · API
VpnHood.Core.Client.VpnServices.Manager The app's side of the VPN service contract: it starts the VPN service with its options, follows its state, and sends it the app's requests. Overview · API