Browsing /Core Components
Several users seems confused about all the names of the programs/components AMIGIFT uses,
well, here we will describe all of them. First of all, "AMIGIFT" is the term
who name gives to the whole package, nothing more. Each of the components ported
from the Linux side have they original name, and valid therefore anywhere in the world.
Before going to explain each of the components, a brief history about the project(s):
The giFT project was born around the year 2001, at that time and as an immature project it
was provided with a CGI-Interface to be run from Apache, the project seems to started going well
but for some reasons it was drop some time later, the project was then taken (at the year 2003)
by Josh Guilfoyle who rewrote lots of code implementing a linux-based plugins system
and designing the OpenFT network, thanks to his excellent work the AMIGIFT project was born
some weeks later. The names being used, and the way we write them:
The name "giFT" stand for "GNU Internet File Transfer", it was written on that way
(lower -> upper case) because there is another
GNU package called "GIFT"
which means "GNU Image Finding Tool", both packages was released around the same time,
and nothing of the authors noticed the coincidence once both of them was already released.
Hence, the package for AmigaOS should be written "AmigiFT" to be quite correct, however
I personally like to write all uppercase or lowercase (eg: amigift or AMIGIFT), (Also, we
have noticed some news sites keep writing "AmiGIFT" when indeed it is not the Amiga version
of the GNU's Image Finding Tool), All this on, when the port to Amiga goes "AMIGIFT" we
adopted it as an acronym to "Amiga Internet File Transfer" following the giFT way,
and then the Amiga's frontend spelled "GiFTMui" which stand for "Magick User Interface for giFT",
well, we are now ready to explain each of the components AMIGIFT uses:
This is the central component for the AMIGIFT system. giftd is
responsible for loading and executing network plugins, handling the remote
interface protocol, managing searches, file exchanges, and other critical
activities that exist above the network protocols themselves. In other words,
giftd is the AMIGIFT work horse.
Support and utility library for giftd and network plugins.
This library is essentially a grab bag of tools, data structures, and common
functionality needed by, and found in, most large C projects. While it is
only critical for giftd, it can be a very useful tool to aid in developing
giFT-related utilities. The source is heavily documented in the doxygen
Library which designs the API to networks plugins, A
great majority of the interaction between the daemon and plugins is defined
by a single interface in the source code header file protocol.h, which is
naturally heavily documented internally.
This library implements utility functions to extract meta
data info from some common streams, like avi, mpeg, ogg,etc. it is used mainly
when a hashing of your shared files and/or completed downloads is performed.
Extracted information are width, height, fps, bitrate, etc which later are
sent through search requests.
This library implements helpful utility functions to
AmigaOS-only clients, this isn't a ported library but created from scratch
to fit our needs, this library is still being heavily developed with new
functions being added, or changed/optimized, each time. Everything
is subject to change, but keeping backward compatibility where possible,
hence you're encourage to use the very latest version all the time.
It is the user interface or frontend, it has been created using
MUI (Magic User Interface), a Reaction-based frontend may come later as we
started writing it but stopped due to lack of motivation...
Known Network Plugins
- OpenFT.PlugIn officially supported
A network designed exclusively around the framework, loosely
based on the main design principles of the FastTrack network. OpenFT offers
pretty much all of the major features you'd expect to see from the larger
networks (Gnutella, FastTrack, eDonkey, etc), despite maintaining a relatively
small and manageable user base. This network plugin was built and maintained
by the core giFT developers, and is considered an official component of the
- Gnutella.PlugIn officially supported
Gnutella1 plugin officially distributed by the giFT project.
- FastTrack.PlugIn officially supported
Implements the hugely popular FastTrack network used by
KaZaA (and formerly Morpheus and Grokster). Please note that this plugin was
produced independent of the KaZaA source code and does not necessarily behave
the same. In other words, you're accessing the same network that KaZaA is, but
in a slightly different way.
- Ares.PlugIn officially supported
A plugin that connects to the
Ares network, another FastTrack-like network.
Mostly defunct plugin to access opennap servers (via the Napster protocol).
Totally broken mess that needs to be rewritten entirely to be of any use...
A plugin which connects to the WWW Aminet Server(s), being
able to search and download from the p2p frontend, with the new
Aminet WWW Interface this
plugin has become almost useless...
far from finished DC Network plugin, currently
it supports connecting to one hub, downloading and uploading files and
file-lists (user browsing). As giftd doesn't have any support for chatting
through the p2p networks, this plugin opens another port where the
chat-messages are forwarded using a simple protocol. There are also several
hacks which force giftd to handle files without a hash (still common on DC)
A plugin to connect to the
This plugin was created some years ago but never finished, it even wasn't never
tried to be ported to the AMIGIFT project.
a p2p network architecture for safe sharing of sensitive data (...) As for Mute,
it was created some years ago but never finished, it even wasn't never
tried to be ported to the AMIGIFT project.
- BitTorrent.PlugIn officially supported
A plugin to download .torrent files which currently being developed,
very slow though..
Status: We have started working on this plugin being the skeleton (well, and beyond it!) quite ready,
but stopped its development due the complexity of the integration/implementation of it into the giFT core
altogether with our low free time during the past months. Hence, we have decided the fully integration of this plugin
will directly depend on the number of registrations reached with the 2.0 release.. Sorry if that does not
sound friendly.. but sure most of you understand it, specially those of you who know how BT works
internally.. (at least, the GUI part is ready). Please, help us help you! :)
$Id: index.php,v 2.0 2009/08/06 22:47:32 diegocr Exp $