WireGuard ~4,000 lines of code built directly into the Linux kernel modern cryptography only (ChaCha20, Curve25519, Poly1305, etc.) OpenVPN ~100,000+ lines of code runs in user space (slower than in-kernel implementations) flexible crypto (AES, RSA, etc.), but complexity adds overhead