Version 12 (modified by lennart, 6 years ago)

--

The Avahi project intends to take part on the Google Summer of Code 2007 as a project.

Here a few ideas for possible student projects:

  1. Port to Windows - Port the Avahi daemon, the avahi client library and the Bonjour compatibility library to native Win32 (no Cygwin please), possibly also avahi-sharp and the HOWL compat libs. Implementing an alternative to the current D-Bus transport might be advisable.
  2. Python support - Replace the current simplistic avahi-python implementation with a full fledged wrapper aorund avahi-client. This could either bedone by implementing a C-based module or by using  ctypes
  3. Java support - Implement a JNI Java binding for avahi-client, possibly also implementing a compatibility library for the original Bonjour Java API
  4. LLMNR support - Integrate Microsoft's link-local naming protocol  LLMNR (rfc4795) into Avahi, to allow it to take part on both Apple-style and Microsoft-style Zeroconf networking. Oh LLMNR ist a much simpler protocol than mDNS, so this should be easier than it sounds.
  5. CUPS integration - Implement Avahi based browsing in CUPS, with all bells and whistles, including paper size handling and so on. This item probably requires some cooperation with the CUPS project, since the patch needs to be integrated with their code, not ours.
  6. res_query() - Find a clean way to add mDNS support to glibc's res_query(), without making Avahi a dependency of GLIBC. This item probably requires some cooperation with the GLIBC project, since it probably requires changes in their code.
  7. Improved integration into GNOME - This is a bag of small things: notify the user about name conflicts with libnotify; change the mDNS host name depending on the user logged in; make NetworkManager a little bit more Avahi-aware (i.e. replace their IPv4LL implementation with avahi-autoipd; and the previous two items should probably done in NetworkManager as well); a small capplet for configure browse domains; support domains in gnome-vfs/nautilus; add service browsing capabilities through avahi-ui to every single GNOME module that is part of the GNOME Desktop set of packages and where Zeroconf makes sense, such as the proxy configuration capplet, evolution mail erver configuration, various gnome applets, totem streaming server selection and more
  8. DNSSEC, writable wide-area DNS (aka DNS Update), and  DNS-LLQ support - Implement proper DNS-SD over unicast DNS support in Avahi, for use on the Internet and in large corporate networks.
  9. NAT-PMP support - Implement a  NAT-PMP client and server for integration into Avahi. The client should probably also seamlessly support the UPNP IGD protocol.

tedp and federico already started on the last two items. Before anyone also starts to work on these they might want to contact federico and tedp.