[ANNOUNCE] WireGuardKit for iOS and macOS Released

Jason A. Donenfeld Jason at zx2c4.com
Tue Dec 15 17:06:33 CET 2020


Hi folks,

For the last several weeks, Andrej from Mullvad has been working hard
at modularizing the wireguard-apple repository, which contains the
code we use to build WireGuard for macOS and WireGuard for iOS. The
end result is WireGuardKit, an open source Swift PM package that
anybody can use to easily build macOS and iOS applications that
incorporate WireGuard tunnels. Instructions on usage are available
here:

https://git.zx2c4.com/wireguard-apple/about/#wireguardkit-integration

Users of WireGuardKit will be able to instantiate a WireGuardAdapter
inside of their PacketTunnelProvider network extension. The one that
ships with WireGuard for macOS and iOS should serve as a simple
reference of ~125 lines of boiler plate code:

https://git.zx2c4.com/wireguard-apple/tree/Sources/WireGuardNetworkExtension/PacketTunnelProvider.swift

All of the heavy lifting has moved into the WireGuardKit, so that
application writers do not need to concern themselves with low-level
networking details.

In general, the WireGuardKit project has been a great example of
positive collaboration between the WireGuard open source project and
an industry stakeholder. As Mullvad's mobile apps depend on WireGuard,
putting the development time into improving our upstream code so that
their downstream code can more easily consume it, as well as
contributing fixes and improvements in their downstream code back
upstream, not only makes things easier for Mullvad, but also brings
shared improvements to everyone else across the WireGuard ecosystem.

As more developers begin to use WireGuardKit, we're very interested to
hear feedback, particularly about missing features or APIs that might
be useful.

Enjoy!
Jason

PS: Today we've also sent new versions of the WireGuard app up to the
App Store approval process for iOS and macOS, with a bunch of
performance improvements and also support for Apple Silicon. Who knows
how long it will take for Apple to approve it -- we've experienced
wait times between 1 day and over 1 month -- but keep your eyes peeled
for the update.


More information about the WireGuard mailing list