Gonnect is a collection of network helper functions and common types that have been reinvented and reimplemented countless times in many Go projects. I created it mostly for myself, but feel free to use it in your projects or suggest features.
The routing subpackage provides bytecode based routing rules for
gonnect.Router, gonnect/tun.Splitter, and gonnect/sniffer.Sniffer.
Rules can be built directly from bytecode or parsed from a small text format.
See routing/README.md for examples.
The dns/meshnames subpackage provides a gonnect.Resolver implementation
for mesh-oriented DNS names (.meshname, .meship, .ygg, and .pk.ygg).
See dns/meshnames/README.md for examples.
These active projects use Gonnect directly or through another project:
- almagest - visual network toolkit built from Gonnect-based networking components
- batchudp - UDP transport package with Gonnect network support
- gonnect-netstack - gVisor userspace TCP/IP stack integration
- gonnect-vpn-example - point-to-point VPN example
- killswitch - Linux eBPF network kill switch and proxy
- mnlib - mesh-oriented DNS name resolution through a Gonnect network
- pasta - node-based framework with a Gonnect-based demo backend
- socksgo - SOCKS client and server library
- sysnet-linux - Linux backend for
gonnect/sysnet - sysnet-windows - Windows backend for
gonnect/sysnet - tor-driver - Tor client and onion services through Gonnect networks
- tuntap - cross-platform TUN device library
- wg-web-demo - browser demo of HTTP over WireGuard and SOCKS-over-WebSocket
- wgo - WireGuard library built on Gonnect networking components
- wgo-tailscale - Tailscale-compatible control plane for
wgo - ygg - Yggdrasil mesh network implementation with WASM builds
Files in this repository are distributed under the CC0 license.

To the extent possible under law,
ASCIIMoth
has waived all copyright and related or neighboring rights to
gonnect.