Gui

From MLDonkey

Jump to: navigation, search

Technical background

Unlike most P2P clients, such as eDonkey2000, MLdonkey application does not contain user interface; it's merely a P2P engine built for exchanging files, and interaction with the user is left to the UserInterfaces. Albeit it might seem to be inconvenient at the first glance, such an open architecture actually provides great flexibility, allowing third parties to implement and customize the way MLdonkey's status displays look to the end user.

Another benefit of having core separated from the user interface is remote manageability. It doesn't make any difference whether the core and the interface part are running on the same computer or on two boxes half the world apart, or even what operating system do these machines run. This architecture allows you to go on vacation without losing control over the whole download process, taking a peek at what's going on back at home by the means of a web browser||WebUI, |TelnetUI or even WAP-enabled cellphone.

Yet another way to monitor the progress of your downloads is by utilizing one of numerous MLdonkey Guis. While it lacks the universality (you'll have to install the program on the computer you're going to perform the monitoring from), it's so far the prettiest looking one.

MLdonkey Gui clients

  • Sancho - Excellent Java multiplatform GUI for mldonkey
  • KMLdonkey - a nice GUI for KDE, written in C++
  • MLdonkeyGtkUi - The original mldonkey GUI (comes with CVS)
  • G2Gui - Written with the purpose of providing a nice GUI for beginners (dead)
  • CocoDonkey - a GUI for Mac OS X, written in Cocoa
  • xDonkey - an other most recent GUI for Mac OS X, written in Cocoa
  • mlMac - Nice GUI for Mac OS X, written in Cocoa
  • MLdonkeyWatch - Nice Delphi app for MS Windows
  • phpEselGui - a GUI for mldonkey written in PHP
  • saman - Another GUI for mldonkey written in PHP
  • Platero - A mldonkey GUI for KDE
  • Alemula - Another mldonkey GUI in PHP
  • Zuul - PHP Front-End for mldonkey
  • JMoule - A very simple GUI written in Java
  • Web-GMUI - A web GUI included in a simple webserver

Feature List

Sancho/MLdonkeyGtkUiWebUICocoDonkeymlMacMLdonkeyWatchphpEselGuiAlemulasamanJMouleWeb-GMUI
Connection GUI-Protocol HTTP Telnet GUI-Protocol GUI-Protocol Telnet ? Telnet GUI-Protocol GUI-Protocol
Prog. Language Java OCaml ? Cocoa Cocoa PHP ? PHP Java D
Launch/Kill core yes no/yes yes yes no/yes no/yes ? no/yes no no/yes
Charts no no yes no yes yes ? no no no
Chat yes (a) no no no yes no ? no no no
Multi Language yes no no yes no no ? yes no yes
Customize no no no no no yes ? yes yes yes
Latest Release 05.06/? ? ? ? ? ? 04.03 05.03 ? 01.08
Linux/Unix yes yes no (d) no (d) no (b) yes (b) yes yes yes yes
Windows yes (c) yes no no yes yes ? yes yes yes
MacOSX yes (e) yes yes yes no no ? yes yes ?

(a) irc, yahoo
(b) works with wine
(c) avaiable at http://www.scherthan.com
(d) may work with GNUstep
(e) needs the x11 environment

_Please help to fill the gaps or add new features. Please use TABs and not spaces to keep the table editable. Thanks, luculus_

_Some of the above entries for mlMac seem incorrect. mlmac runs on Mac OS X, launches the core on start, kills core on quit (or you can leave it running)._

The phpEselGUI connects to the core on the telnet port (4000) and parses the output of the telnet session to get the necessary information. _(is this still true? ... Yes, it is true, we are thinking to change)_

The other GUIs connect to the GUI port (4001) and talk to the core using the GuiProtocol.

Using the telnet approach might seem to be an easier task than implementing the GuiProtocol at first, but it can get quite tedious to maintain the code when the telnet output changes across versions.

Personal tools