Noisysockets
Userspace TCP/IP Sockets For WireGuard.
Install / Use
/learn @noisysockets/NoisysocketsREADME
Noisy Sockets
Noisy Sockets is a secure service-to-service communications library based on the Noise Protocol Framework. Endpoints are identified by Curve25519 public keys, traffic is encrypted and authenticated using ChaCha20-Poly1305, and sent/received as UDP packets. Noisy Sockets is wire compatible with WireGuard.
Noisy Sockets implements a drop-in replacement for the Go net package, allowing it to be used with any existing code. This is implemented using a userspace TCP/IP stack based on Netstack from the gVisor project.
Usage
Examples of how to use Noisy Sockets can be found in the examples directory.
Performance
Surprisingly decent, I've been able to saturate a 1Gbps link with approximately two CPU cores and a single noisy socket. Interestingly it appears to outperform the kernel implementation of WireGuard.
Some preliminary benchmark results can be found in the benchmarks respository.
Credits
Noisy Sockets is based on code originally from the wireguard-go project by Jason A. Donenfeld.
WireGuard is a registered trademark of Jason A. Donenfeld.
