AMIGIFT Documentation

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:

Main components

giftd

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.

gift.library

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 tool format.

giftproto.library

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.

giftmeta.library

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.

amigift.library

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.

GiFTMui

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 giFT project.

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.

OpenNap.PlugIn

Mostly defunct plugin to access opennap servers (via the Napster protocol).

SoulSeek.PlugIn

Totally broken mess that needs to be rewritten entirely to be of any use...

Aminet.PlugIn

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...

DirectConnect.PlugIn

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) properly.

Mute.PlugIn

A plugin to connect to the MUTE network. This plugin was created some years ago but never finished, it even wasn't never tried to be ported to the AMIGIFT project.

Turtle.PlugIn

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! :)






Introduction
go to index
Requirements




 $Id: index.php,v 2.0 2009/08/06 22:47:32 diegocr Exp $