Changes between Version 13 and Version 14 of GoogleSummerOfCode

Show
Ignore:
Timestamp:
03/10/07 15:36:56 (6 years ago)
Author:
lennart
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GoogleSummerOfCode

    v13 v14  
    33Here a few ideas for possible student projects: 
    44 
     5== Porting == 
    56 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. 
    6  1. '''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 [http://www.python.net/crew/theller/ctypes/ ctypes] 
     7 
     8== Language Support == 
     9 1. '''Python support''' - Replace the current simplistic avahi-python implementation with a full fledged wrapper aorund avahi-client. This could either be done by implementing a C-based module or by using [http://www.python.net/crew/theller/ctypes/ ctypes] 
    710 1. '''Java support''' - Implement a JNI Java binding for avahi-client, possibly also implementing a compatibility library for the original Bonjour Java API 
    8  1. '''LLMNR support''' - Integrate Microsoft's link-local naming protocol [http://www.ietf.org/rfc/rfc4795.txt 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 might sound. 
     11 1. '''C++ support''' - Add a high quality C++ wrappers for the Avahi libraries. This would probably include both a wrapper around avahi-client/avahi-common (maybe using libsigc++?) and a gtkmm-style wrapper around libavahi-ui. 
     12 
     13And no, Swig is not really an option. Swig would not be much better than what we currently have: generic wrapping around some D-Bus API. We want bindings that actually feel like native bindings, i.e. Python bindings that feel like python bindings, Java bindings that feel like Java bindings and C++ bindings that feel like C++ bindings. 
     14 
     15Also: these wrappers should be based on the C versions of libavahi-client/libavahi-common, and not make use directly of D-Bus. Why? avahi-client offers some functionality beyond mere wrapping of D-Bus, such as per-user browsing domain configuration. Also, if Avahi is ever ported to Win32 the D-Bus is probably replaced (only for that specific port) by some other communication method, and thus basing the wrappers on libavahi-client will make porting them to win32 easier. 
     16 
     17== Third Party Application Integration == 
    918 1. '''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. 
    1019 1. '''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. 
    1120 1. '''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 
     21 
     22== Protocol support == 
     23 1. '''LLMNR support''' - Integrate Microsoft's link-local naming protocol [http://www.ietf.org/rfc/rfc4795.txt 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 might sound. 
    1224 1. '''DNSSEC, writable wide-area DNS (aka DNS Update), and [http://files.dns-sd.org/draft-sekar-dns-llq.txt DNS-LLQ] support''' - Implement proper DNS-SD over unicast DNS support in Avahi, for use on the Internet and in large corporate networks. 
    1325 1. '''NAT-PMP support''' - Implement a [http://files.dns-sd.org/draft-cheshire-nat-pmp.txt NAT-PMP] client and server for integration into Avahi. The client should probably also seamlessly support the UPNP IGD protocol.