Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Network Layer
  3. dns-discovery

dns-discovery

MITJavaScript

A Node.js library for peer discovery in distributed systems using DNS and multicast DNS protocols.

GitHubGitHub
194 stars18 forks0 contributors

What is dns-discovery?

dns-discovery is a Node.js library that facilitates peer discovery in distributed systems using DNS and multicast DNS protocols. It solves the problem of finding and connecting to other nodes in a network by allowing applications to announce their presence and discover peers either locally via mDNS or globally through DNS servers.

Target Audience

Developers building distributed systems, peer-to-peer applications, or microservices that need automatic peer discovery without complex service mesh setups.

Value Proposition

It offers a lightweight, protocol-based approach that leverages existing DNS infrastructure, making it easy to deploy and integrate compared to heavier discovery solutions while supporting both decentralized and centralized modes.

Overview

Discovery peers in a distributed system using regular dns and multicast dns.

Use Cases

Best For

  • Building peer-to-peer applications that need automatic node discovery
  • Creating distributed systems where services must find each other dynamically
  • Setting up local network service discovery without a central registry
  • Developing microservices architectures with lightweight discovery mechanisms
  • Implementing cross-internet peer discovery using DNS servers
  • Prototyping distributed systems with minimal setup and dependencies

Not Ideal For

  • Projects requiring encrypted and authenticated peer discovery out-of-the-box
  • Real-time applications needing sub-second discovery latency without DNS caching delays
  • Environments where multicast DNS is blocked or DNS infrastructure is heavily restricted
  • Systems needing advanced peer health monitoring or load balancing beyond host-port announcements

Pros & Cons

Pros

Dual-Protocol Flexibility

Supports both multicast DNS for local networks and standard DNS for internet-wide discovery, allowing seamless operation in various environments as described in the options.

Minimalist API Design

Provides straightforward methods like announce(), lookup(), and listen() for easy integration, reducing the learning curve for distributed systems development.

Integrated CLI Tool

Includes a command-line interface for announcing, looking up, and running discovery servers without writing code, speeding up testing and deployment.

Configurable Discovery Servers

Allows the use of multiple centralized servers with custom TTLs and domains, offering flexibility in managing peer records across networks.

Cons

Lack of Built-in Security

Does not implement encryption or authentication mechanisms, relying on plain DNS which is vulnerable to spoofing and eavesdropping in untrusted networks.

Dependency on External DNS

For centralized discovery, it requires setting up and maintaining DNS servers, adding operational overhead compared to self-contained solutions.

Limited State Management

Primarily handles peer announcements and lookups without built-in features for session persistence or advanced peer health monitoring.

Frequently Asked Questions

Quick Stats

Stars194
Forks18
Contributors0
Open Issues7
Last commit4 years ago
CreatedSince 2015

Tags

#multicast-dns#distributed-systems#dns#nodejs#service-discovery#p2p#peer-discovery#networking#udp

Built With

N
Node.js

Included in

Network Layer579
Auto-fetched 10 hours ago

Related Projects

hypercorehypercore

Hypercore is a secure, distributed append-only log.

Stars2,912
Forks211
Last commit3 days ago
bittorrent-trackerbittorrent-tracker

🌊 Simple, robust, BitTorrent tracker (client & server) implementation

Stars1,939
Forks331
Last commit3 days ago
bittorrent-dhtbittorrent-dht

🕸 Simple, robust, BitTorrent DHT implementation

Stars1,281
Forks207
Last commit11 days ago
ipfsipfs

[ARCHIVED] now part of the https://github.com/ipfs/js-ipfs repo

Stars1,042
Forks288
Last commit6 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub