Gui FR
Contents |
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_FR. 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 multiuser GUI written in PHP
Test tableau
Nom | Connection | Langage | Démarrer/arrêter | Chat | Multi Language | Théme | Version actuelle | OS |
---|---|---|---|---|---|---|---|---|
Sancho | GUI-Protocol | Java | yes | yes | yes | no | 0.9.4-58 | Linux/Unix/Mac/Windows |
MLdonkeyGtkUi | Gtk+ | 2.8.6 | ||||||
WebUI | HTTP | OCaml | non/oui | non | non | non | oui | toutes plateformes |
CocoDonkey | Telnet | Cocoa | oui | non | non | non | 0.25 | Mac |
mlMac | GUI-Protocol | Cocoa | oui | non | oui | non | 0.7.5 | Mac |
MLdonkeyWatch | ||||||||
phpEselGui | ||||||||
Alemula | ||||||||
saman | ||||||||
JMoule | ||||||||
Web-GMUI | ||||||||
xDonkey |
Feature List
Sancho/MLdonkeyGtkUi | WebUI | CocoDonkey | mlMac | MLdonkeyWatch | phpEselGui | Alemula | saman | JMoule | Web-GMUI | |
Connection | GUI-Protocol | HTTP | Telnet | GUI-Protocol | GUI-Protocol | Telnet | ? | Telnet | GUI-Protocol | Telnet |
Prog. Language | Java | OCaml | ? | Cocoa | Cocoa | PHP | ? | PHP | Java | PHP |
Launch/Kill core | yes | no/yes | yes | yes | no/yes | no/yes | ? | no/yes | 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 | ? | 12.05 |
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 | ? |
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.