Matthew Macy was contracted to port WireGuard into FreeBSD's kernel for Netgate's routers, but his implementation contained numerous bugs and security issues that went largely unreviewed before being committed to FreeBSD 13.0. WireGuard founder Jason Donenfeld discovered the problems and, along with Kyle Evans and Matt Dunwoodie, replaced nearly all of Macy's code in an intensive week-long effort to fix critical issues before release.
wireguard-go is a Go implementation of WireGuard that creates VPN interfaces via command-line. It runs on Linux, macOS, Windows, FreeBSD, and OpenBSD with platform-specific limitations, and can be compiled from source using Go and Make.
Home routers and NAS devices can function as VPN servers but often suffer from reliability, performance, security, and usability issues. Built-in VPN services struggle with NAT traversal, fail on restricted networks, create single points of failure, lack processing power for multiple users, and are limited by residential upload speeds. Dedicated VPN solutions like Tailscale provide better alternatives for most users.