Zeroconf/Bonjour/Avahi is a very interesting technique that targets at freeing users of services from tedious IP-based network configuration by automatic-distributed address-assigning, name-assigning and service discovery/browsing. It's named officially as zeroconf, Bonjour is the implementation in OS X, iOS and Windows, while Avahi is for Unix-like system.

However, while Bonjour is popular and widely used in Apple products, few users take advantage of Avahi in Linux world and the number of applications that do integrate Avahi are still just a few and this feature is not often used.

This project aims to investigate and explore the possible use cases of Avahi in Linux. As a beginner on this topic, this project also serves a research purpose. Currently I have considered the following ideas:

  1. GNOME Shell integration. A Avahi browsing tab in Overview maybe?
  2. Firefox integration. Epiphany, Safari, even IE with plugins supports zeroconf and yet no support in Firefox exists. There was an extension for it but discontinued long ago. Can we pick what is left? Possible use cases are avahi bookmarks to show internal web pages and recommended web sites.
  3. Wayland integration? Wayland itself is a protocol mainly, so it allows great flexibility. Would it be possible to have some display service or remote display service that can be published through Avahi? One scenario is that you have a large screen attached to your Linux box that runs Wayland, and you'd like to display something on it from your phone or other laptops, first you browse available avahi services, and you find out the "Wayland Display Service" (fictional!), you connect to it, the selected part of your display on your device just shows up on the large screen. This seems to be the most exciting idea but also the most demanding one, and whether Wayland has the support infrastructure is still a question.

Comments

  • bmwiedemann
    about 6 years ago by bmwiedemann | Reply

    When I looked into Eucalyptus-based Ubuntu cloud ~2 years ago, I found that they used avahi to discover the master node, if it was already there and would offer to setup the new node as master node otherwise - neat. It would be nice to have some graphical tool to discover/browse mDNS/zeroconf services, but it should not be dependent on a user's desktop (e.g. GNOME does not work well in KVM because graphics libs (cairo,pixman,Mesa) have bugs without 32bit video-output). One downside of zeroconf is that it mostly works within one broadcast domain, so it is hard to discover services over VPN (e.g. how to print from home/laptop or from Nuremberg onto a printer in Prague?) SLP is an older protocol with a similar task, that seems to be rarely used outside of SUSE products. Maybe some of the SLP service announcements (printers, ntp?, dns?) could be also done on zeroconf.

  • jsmeix
    about 6 years ago by jsmeix | Reply

    Only FYI regarding printing:

    CUPS 1.6.1 is the first CUPS version that supports Avahi directly. In openSUSE we still provide CUPS 1.5.4 because bnc#735404 is not yet resolved. See bnc#735404 wherefrom you could get CUPS 1.7-rc1and cups-filters if you like to try it out.

  • cxiong
    about 6 years ago by cxiong | Reply

    During the 5-day hackweek period, I've invested much time into the study of the protocols, namely mDNS and DNS-SD. However, when I tried to implement the ideas mentioned above, I encountered some more issues:

    1. Existing firefox extension for zeroconf is only for Windows and Mac, and source code is no where to find (repo is deleted from github and extractions from XPI file yields some binary library).

    2. Related to above, Avahi's core library is not very well documented and less versatile than its D-Bus interface. Still looking to ways to link these to extensions for Firefox & GNOME.

    Thanks for ideas&advices above from jsmeix and bmwiedemann. As a beginner, in this hackweek this project mainly serves as a research. However as I'm also responsible for some Avahi bugs/fate, I shall continue to work on related work and get better prepared for this the next hackweek.

Similar Projects

This project is one of its kind!