mdns_dart
About
mdns_dart
is a pure Dart implementation of Multicast DNS (mDNS) for service discovery and advertising on local networks. This library is a direct port of the proven HashiCorp mDNS implementation, adapted for the Dart ecosystem. It requires no native dependencies and works across platforms, including Docker and bridge networks.
This project is not affiliated with HashiCorp. All original credit goes to HashiCorp; this port is maintained for Dart and Flutter developers.
Features
Feature | This Library | multicast_dns | nsd | flutter_nsd |
---|---|---|---|---|
Interface Binding | Full support | Full support | Platform dependent | Platform dependent |
Docker/Bridge Networks | Works perfectly | Limited | Platform dependent | Platform dependent |
Service Advertising | Full server | Discovery only | Via platform APIs | Via platform APIs |
Pure Dart | No native deps | Pure Dart | Platform plugins | Platform plugins |
Direct Socket Control | No control | Limited | No control | No control |
Cross-Network Discovery | Solved | Broken | Platform dependent | Platform dependent |
Installation
dart pub add mdns_dart
Or add to your pubspec.yaml
:
dependencies:
mdns_dart: ^latest
For the latest development version:
dart pub add mdns_dart --git-url https://github.com/animeshxd/mdns_dart.git
Usage
Import
import 'package:mdns_dart/mdns_dart.dart';
Basic Service Discovery
final results = await MDNSClient.discover('_http._tcp');
for (final service in results) {
print('${service.name} at ${service.primaryAddress?.address}:${service.port}');
}
For more advanced usage, see the example/
directory.
License
This project is licensed under the MIT License, originally by HashiCorp. See the LICENSE file for details.
Libraries
- mdns_dart
- A comprehensive mDNS (Multicast DNS) service discovery library for Dart.