Install CMake (under development tools) to use this project in Qt Creator.Git 1.8.2 or later with Git LFS installed.To recompile any of these, please refer to their corresponding directories and/or repositories for build instructions. The entire product is built using rake, using the supporting framework in the rake/ directory.ĭependencies such as OpenVPN and the Windows TAP driver are included as precompiled binaries under the deps directory in this project for convenience. The client is intended to be built on the target platform Windows builds are built on Windows, macOS builds on macOS, and Linux builds on Ubuntu. Qt and Qt Quick tend to be more memory and CPU efficient compared to web-based UI frameworks like Electron or NW.js.
The client GUI is based on Qt Quick, which uses declarative markup language and JavaScript and offers hardware accelerated rendering when available. The project uses Qt 5 for cross-platform development, both in the client and daemon. No matter how many users are active on a machine, they control the same single VPN instance and share a single PIA account. The client meanwhile runs in each active user's desktop and consists almost entirely of presentation logic. The daemon runs a single instance on the machine and is responsible for not only network configuration but also settings and account handling, talking to PIA servers as necessary. It consists of an unprivileged thin GUI client (the "client") and a privileged background service/daemon (the "daemon"). This is the desktop client for the Private Internet Access VPN service.