Yeah I implemented my own in Go because I was unhappy with the 3p ones, so that’s why I reacted. It’s surprisingly hard to get right, in particular:
1. Backoff and timer logic to not flood network.
2. Caching entries for the same reason.
3. Handling multiple network interfaces, and detecting when they changed.