Network address types
This is a package containing a new IP address type for Go.
See its docs: https://pkg.go.dev/inet.af/netaddr
This package is mature, optimized, and used heavily in production at Tailscale. However, API stability is not yet guaranteed.
netaddr is intended to be a core, low-level package. We take code review, testing, dependencies, and performance seriously, similar to Go's standard library or the golang.org/x repos.
See https://tailscale.com/blog/netaddr-new-ip-type-for-go/ for a long blog post about why we made a new IP address package.
In addition to regular Go tests, netaddr uses fuzzing. The corpus is stored separately, in a submodule, to minimize the impact on everyone else.
$ git submodule update --init $ go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build $ go-fuzz-build && go-fuzz