Skip to main content

PIAsync: A simple, respectful management tool for Private Internet Access VPN configs

PIAsync aims to be a simple and lightweight tool that automaticaly manages configuration information in the NetworkManager data domain for the VPN servers operated by Private Internet Access.

In addition, PIAsync is respectful of your user and system configuration. It will never:

  • Execute any external processes
  • Write anything on the filesystem itself
  • Require superuser privileges
  • Require native packages to be installed

All interactions with NetworkManager are performed using the latter's D-Bus API, the way it should be.

How Do I Use It?

  1. Install PIAsync (you'll need Python 3 and pip):
    $ pip3 install piasync
    
  2. Run it:
    $ piasync -h
    usage: piasync [-h] [-n] [-a] [-v] username cert
    
    Maintains Network Manager connections for the Private Internet Access VPN
    servers
    
    positional arguments:
      username         Username to use for the VPN connections
      cert             Path to the PIA root CA
    
    optional arguments:
      -h, --help       show this help message and exit
      -n, --dry-run    Do not manipulate the NetworkManager configuration
      -a, --all-users  Make the connections available to all users
      -v, --verbose    Output debug information
    

But Why?

Because PIA's list of servers is quite large and setting up connections manually for each one would be tedious. There are automated solutions available, but tools that write config files without my informed consent upset me very much, so I wanted a tool that would not do that.

Shout Outs

  • PIASync uses jeepney for interacting with NetworkManager over D-Bus.
  • The requests library is used to download fresh configuration information from the PIA website.
  • Lastly, countrynames is used to match the names given by PIA to its servers to a country code for the purpose of injecting a cute Emoji flag in the user-visible connection name.

Metadata

Release files for piasync 0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for piasync 0.10
File Interpreter ABI Platform Actions
piasync-0.10-py3-none-any.whl Python 3 none any Details for piasync-0.10-py3-none-any.whl

Release files / piasync-0.10-py3-none-any.whl

Download URL piasync-0.10-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd91f53eada1a75c60f75a48ed5cf247ae06afcd8b98f0a96948895bcdb1218c
BLAKE2b-256 checksum
How to use checksums
24d8834101f5282fa866b6fa8c7040441368a12c2af46dfb76e8deb649be2494
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

Security for piasync 0.10

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.10 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page