A pure-Go library for cross-platform local peer discovery using UDP multicast.
Peerdiscovery is a pure-Go library for local peer discovery using UDP multicast. It allows applications running on the same network to automatically find each other without manual configuration. The library was created to solve reliability issues in existing peer discovery solutions for projects like croc.
Go developers building distributed applications, peer-to-peer tools, or local network services that need automatic device discovery.
It offers a cross-platform, thread-safe implementation with no external dependencies, making it easier to integrate than lower-level networking code or platform-specific alternatives.
Pure-Go library for cross-platform local peer discovery using UDP multicast :woman: :repeat: :woman:
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works on Windows, macOS, and Linux using standard UDP multicast, ensuring broad usability without platform-specific code.
Explicitly designed for concurrent use in multi-threaded applications, making it reliable for modern Go programs with goroutines.
With just a few lines of Go code, as shown in the usage example, developers can quickly implement peer discovery without complex setup.
Includes dedicated examples for both network protocols, allowing flexibility in deployment on diverse local networks.
Relies on UDP multicast, which is confined to local networks and often disabled in cloud or virtualized environments, restricting its use cases.
Lacks encryption or authentication for discovery messages, making it vulnerable to spoofing or eavesdropping in untrusted networks.
As a pure-Go library, it cannot be used in polyglot projects or with other programming languages, limiting its adoption outside Go ecosystems.