Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Network Layer
  3. mdns

mdns

MITJavaScriptv2.5.0

A Node.js add-on for multicast DNS service discovery (Zeroconf/Bonjour) to announce and browse services on local networks.

Visit WebsiteGitHubGitHub
876 stars145 forks0 contributors

What is mdns?

mdns is a Node.js add-on that implements multicast DNS service discovery, allowing applications to automatically advertise and discover services on a local network. It solves the problem of manual service configuration in distributed systems by leveraging Zeroconf/Bonjour protocols.

Target Audience

Node.js developers building networked applications, IoT devices, or distributed systems that require automatic service discovery without centralized configuration.

Value Proposition

Developers choose mdns for its native Node.js integration, cross-platform support (Linux, macOS, Windows), and straightforward API that abstracts complex multicast DNS details while maintaining compatibility with existing Zeroconf/Bonjour ecosystems.

Overview

mdns/zeroconf/bonjour service discovery add-on for node.js

Use Cases

Best For

  • Advertising HTTP servers for local development and testing
  • Building IoT devices that need to discover each other on a network
  • Creating peer-to-peer applications without a central registry
  • Developing microservices that communicate within a local environment
  • Implementing plug-and-play functionality for networked hardware
  • Automating service discovery in home automation projects

Not Ideal For

  • Applications requiring service discovery across different subnets or over the internet
  • Projects where installing and managing native system dependencies (e.g., avahi, Bonjour SDK) is not feasible
  • Environments with strict security policies that restrict multicast traffic or external SDK usage
  • Teams needing a pure JavaScript solution without native add-ons for easier deployment or serverless environments

Pros & Cons

Pros

Object-Based API

Provides a clean, event-driven JavaScript interface with simple methods like createAdvertisement and createBrowser, making it intuitive for Node.js developers to integrate service discovery.

Cross-Platform Support

Works on Linux, macOS, and Windows by abstracting underlying system libraries like avahi and Bonjour, ensuring compatibility with existing Zeroconf/Bonjour ecosystems.

Real-Time Service Updates

Browsers emit 'serviceUp' and 'serviceDown' events, allowing applications to react immediately to network changes without manual polling or configuration.

Type Discovery Feature

Includes mdns.browseThemAll() to dynamically explore all available service types on the network, enabling flexible and adaptive application design.

Cons

Complex Installation Process

Requires platform-specific dependencies such as avahi-dev packages on Linux or Bonjour SDK on Windows, along with environment variable setup and compilers, which can be a barrier to quick deployment.

Native Add-on Overhead

As a Node.js add-on, it relies on native code compilation, leading to potential compatibility issues with different Node versions and increased complexity in environments like Docker or CI/CD pipelines.

Limited Documentation Depth

The user guide is externally hosted and the README provides only a synopsis, which may leave developers struggling with advanced use cases, error handling, or troubleshooting platform-specific issues.

Frequently Asked Questions

Quick Stats

Stars876
Forks145
Contributors0
Open Issues37
Last commit2 years ago
CreatedSince 2010

Tags

#iot#local-network#addon#nodejs#service-discovery#mdns#networking

Built With

N
Node.js
C
C++

Links & Resources

Website

Included in

Network Layer579
Auto-fetched 1 day ago

Related Projects

hypercorehypercore

Hypercore is a secure, distributed append-only log.

Stars2,792
Forks195
Last commit2 days ago
bittorrent-trackerbittorrent-tracker

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

Stars1,923
Forks329
Last commit5 days ago
bittorrent-dhtbittorrent-dht

🕸 Simple, robust, BitTorrent DHT implementation

Stars1,274
Forks207
Last commit13 days ago
ipfsipfs

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

Stars1,045
Forks290
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