mdns 0.0.1

  • Example
  • Installing
  • Versions
  • 63

mDNS for Flutter

A Flutter plugin for mDNS/DNS-SD discovery and advertising. Ultimately this plugin will be compatible with Android and iOS.

See for additional info


See example/lib/main.dart for a simple example

Currently Working

  • Service Discovery on Android

TODO (in this order)

  • Service Discovery on iOS
  • Service advertising on Android
  • Service advertising on iOS

[0.0.1] - Monday, January 22nd, 2018

Added in this release:

  • Discovery for Android
  • Example flutter app with basic discovery function


import 'package:flutter/material.dart';
import 'package:mdns/mdns.dart';

void main() => runApp(new MyApp());

const String discovery_service = "_workstation._tcp";

class MyApp extends StatefulWidget {
  _MyAppState createState() => new _MyAppState();

class _MyAppState extends State<MyApp> {
  List<String> messageLog = <String>[];
  DiscoveryCallbacks discoveryCallbacks;
  initState() {

    discoveryCallbacks = new DiscoveryCallbacks(
      onDiscovered: (ServiceInfo info){
        print("Discovered ${info.toString()}");
          messageLog.insert(0, "DISCOVERY: Discovered ${info.toString()}");
      onDiscoveryStarted: (){
        print("Discovery started");
        setState((){messageLog.insert(0, "DISCOVERY: Discovery Running");});
      onDiscoveryStopped: (){
        print("Discovery stopped");
        setState((){messageLog.insert(0, "DISCOVERY: Discovery Not Running");});
      onResolved: (ServiceInfo info){
        print("Resolved Service ${info.toString()}");
          messageLog.insert(0, "DISCOVERY: Resolved ${info.toString()}");

    messageLog.add("Starting mDNS for service [$discovery_service]");

  startMdnsDiscovery(String serviceType){
    Mdns mdns = new Mdns(discoveryCallbacks: discoveryCallbacks);

  Widget build(BuildContext context) {

    return new MaterialApp(
      home: new Scaffold(
        body: new ListView.builder(
          reverse: true,
          itemCount: messageLog.length,
          itemBuilder: (BuildContext context, int index) {
            return new Text(messageLog[index]);

1. Depend on it

Add this to your package's pubspec.yaml file:

  mdns: "^0.0.1"

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter packages get

Alternatively, your editor might support packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:mdns/mdns.dart';
Version Uploaded Documentation Archive
0.0.1 Jan 22, 2018 Go to the documentation of mdns 0.0.1 Download mdns 0.0.1 archive


We analyzed this package on Apr 23, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.49.0
  • pana: 0.10.6
  • Flutter: 0.3.2


Describes how popular the package is relative to other packages. [more]
63 / 100
Code health derived from static analysis. [more]
39 / 100
Reflects how tidy and up-to-date the package is. [more]
98 / 100
Overall score:
Weighted score of the above. [more]
Learn more about scoring.


Detected platforms: Flutter

References Flutter, and has no conflicting libraries.


  • Fix analysis and formatting issues.

    Analysis or formatting checks reported 3 errors 1 hint.

    Strong-mode analysis of lib/mdns.dart failed with the following error:

    line: 89 col: 63
    The argument type '(Map<dynamic, dynamic>) → Null' can't be assigned to the parameter type '(dynamic) → void'.

  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.


Package Constraint Resolved Available
Direct dependencies
flutter 0.0.0
Transitive dependencies
collection 1.14.6 1.14.9
meta 1.1.2
sky_engine 0.0.99
typed_data 1.1.5
vector_math 2.0.6