I'd like to make a WireGuardHost that will "simply work", a default implementation for every platform.
Tailscale is pretty closely integrated with WireGuard, and seeing their codebase, we could probably get inspired off of it.
Wireguard-go's code is available with the import golang.zx2c4.com/wireguard, I think that integrating with it closely in the same userspace as edup2p can/will achieve a ton of throughput.
There are three major components:
the "TUN" device, createable via wireguard/tuntun.CreateTUN, has platform-specific handling.
the wireguard device, createable via wireguard/devicedevice.NewDevice, requires a TUN device interface, and a bind interface
the "bind", is used to send and receive packets to endpoints.
This host would convert the reads and writes from/to the "bind" to packets to send to toversok, and attach itself to the TUN device in the background.
Segments
Description
I'd like to make a
WireGuardHost
that will "simply work", a default implementation for every platform.Tailscale is pretty closely integrated with WireGuard, and seeing their codebase, we could probably get inspired off of it.
Wireguard-go's code is available with the import
golang.zx2c4.com/wireguard
, I think that integrating with it closely in the same userspace as edup2p can/will achieve a ton of throughput.There are three major components:
wireguard/tun
tun.CreateTUN
, has platform-specific handling.wireguard/device
device.NewDevice
, requires a TUN device interface, and a bind interfaceThis host would convert the reads and writes from/to the "bind" to packets to send to toversok, and attach itself to the TUN device in the background.