Zuul was yet another PHP front-end for the p2p app
Currently no version of Zuul works properly against current versions of
MLDonkey, and it's very unlikely that any development work will continue
on Zuul. A project named Web-GMUI
has been forked which is staying current with more recent MLDonkey
releases, so it's recommended that you use that instead. Zuul file releases
are no longer available, though the CVS repository should still be available.
For information on that, see our project
page at sf.net. Feel free to contact CJ
about anything Zuul-related, but note that he hasn't actually used
Zuul in almost two years now.
If you care to know why development of Zuul has stopped,
feel free to read this incredibly boring description:
- Zuul, like all other web-based MLDonkey frontends in the past, used
the telnet protocol to communicate with the MLD Core.
- Unfortunately, there was never any promise of stability in the telnet
protocol, and the protocol was liable to change, sometimes dramatically,
from release to release.
- During one period of very active MLDonkey development, the telnet
protocol was changing very often, and the Zuul devs decided that they'd had
enough and weren't going to try and keep up with the somewhat arbitrary
changes to the telnet protocol.
- Instead, work began on PHP support for MLDonkey's Binary Protocol, which
was the protocol GUI systems were supposed to use anyway, as it
ensured forwards-compatibility with future MLDonkey releases, so a Zuul
version released now would still work against MLDonkeys released years from
now (theoretically, at least).
- We got the framework for Binary Protocol communications up and running
well, but it soon became apparent that the protocol was very much designed
with long-running GUI processes in mind, and not the usual web model of
connect-grabdata-disconnect. These design decisions, in the end, made it
actually impossible for a web system such as ours to get certain
bits of data from MLDonkey Core that we needed.
- (technically this is a lie - if we ran the protocol in Polling
mode (or possibly non-polling mode; I forget which at the moment), then
the MLDonkey core would send its entire status to Zuul
upon connecting, at which time we'd be able to grab whatever data we
needed. However, this meant that for every single page
load, we'd have to parse and load every single bit of state kept in
MLDonkey. That situation was just completely unacceptable to us.)
- So, we are left with two routes to follow:
- Add Support to the Binary Protocol. The main MLDonkey
devs don't seem to have adding support for these kinds of things into the
core, most likely simply because they've got other things to work on and
the new opcodes required would be of no benefit to them. CJ spent a bit
of time poking around the OCaml code in MLDonkey to see if we could come
up with our own patches to MLDonkey, but the impetus to learn a new language
just to add this kind of support just wasn't enough to sustain interest
long enough to get it done.
- Wait for an XML interface to MLDonnkey Core.
Apparently there is an XML interface in-the-works for MLDonkey core.
While it would be a little disheartening to throw away all the work that
we did on getting the binary protocol to work, an XML interface would
take care of all of the problems that we have been having. This seemed
very promising at the time, but hasn't actually materialized yet, and
since it's been so long since any of us have actually used Zuul, there's
really no impetus for us to do anything about it even if XML support
becomes a reality.