Also consider Nebula: https://github.com/slackhq/nebula ZeroTier does not use an OSI approved open-source license. It is under a freedom-restricting "Business Source License". Nebula is MIT licensed. Nebula is much simpler and in most cases faster than ZeroTier.
How does Nebula compare to Wireguard?
EDIT: actually, they just use various I/O abstractions that WireGuard developed.