Python Wrapper for wireguard-tools

Ryan Whelan rcwhelan at
Mon Aug 24 20:57:43 CEST 2020

At this point, it's very old and not in use, but I once worked on a
project that would wrap the `wg` command in python.

If helpful, I posted it here:

I don't think its feature complete as it was only used internally for
a project that took another direction. But in case it's helpful...

On Sat, Aug 22, 2020 at 3:03 PM Andrew Roth <andrew at> wrote:
> Hello,
> Recently joined the list, but reviewed the archives as best I could.
> I figured before I get too far in writing this, I should ask here.
> I'm looking for a way to create and configure WireGaurd interfaces
> programmatically using Python.  Has anyone created a Python wrapper
> for the wireguard-tools?  If not, could I try my hand at it?
> In my research, I was not able to find any true libraries supporting
> configuring a WireGuard implementation.  Since wireguard-tools [1] is
> cross-platform, and Python is cross-platform, I wanted a
> cross-platform library to configure WireGuard interfaces.  This would
> help application programmers or tool developers who want to utilize
> WireGuard as part of the application or tool written in Python,
> potentially cross-platform.
> I did see wgnlpy [2], but don't think it is a fit since it relies on
> Netlink (Linux kernel interface), so it's not cross-platform.  I also
> found a few other packages on Pypi, but none of them seemed to
> interface with the WireGuard module interfaces.
> In the wireguard-tools repository, I noticed the embeddable-wg-library
> [3] with C source and header.  Python (using CFFI) supports creating
> an extension module that is compiled from C sources to directly invoke
> the target C function [4].  It claims to be fast, simple, and
> platform-agnostic (by that, I mean it can be compiled for any
> platform).  I am planning on writing a python module to expose the C
> functions from the embeddable-wg-library using CFFI.
> Does this make sense?  Any comments, gotchas, or limitations?
> Thanks for your time,
> Andrew
> [1]:
> [2]:
> [3]:
> [4]:
> --
> ~Andrew Roth
> "Our greatest glory is not in never falling, but in getting up every
> time we do." -Confucius

More information about the WireGuard mailing list