GiFT
# GiFT

giFT es un dominio (programa de computadora o servicio) creado para servir de nexo entre los distintos protocolos de redes de distribución de archivos y una interfaz gráfica. Utiliza plugins para cargar dinámicamente los diferentes protocolos a medida que un cliente lo solicite.

## General

Los clientes que implementen interfaces gráficas para giFT se comunican con el proceso usando un protocolo de red ligero. Esto permite que el código del protocolo de red sea abstraído de la interfaz de usuario. giFT es escrito utilizando código multiplataforma C, que significa que puede ser compilado y ejecutado en una gran variedad de sistemas operativos. Existen varias GUI para OS como Microsoft Windows, Apple y Unix-like.

giFT (giFT Internet File Transfer) es un acrónimo recursivo, que quiere decir que una de las letras representa el propio acrónimo.

Uno de los inconvenientes del núcleo de giFT es que actualmente carece de soporte unicode, lo que impide el intercambio de archivos con nombres que contengan caracteres unicode (como "ø","ä", "å", "é" etc). También, giFT carece de muchas características necesarias para usar la red Gnutella efectivamente.

## Protocolos soportados

Los protocolos soportados actualmente por giFT son: Gnutella, Ares Galaxy y OpenFT. Un plugin para FastTrack (el protocolo utilizado por Kazaa) se encuentra en estado beta, mientras que otro para OpenNap se encuentra en etapa temprana de desarrollo.

El proyecto giFT se encuentra fuertemente ligado al proyecto OpenFT, una reimplementación del protocolo FastTrack producido a través del conocimiento adquirido de la ingeniería inversa de FastTrack. OpenFT implementa nodos de búsqueda y supernodos índices al igual que FastTrack.

## Interfaces gráficas

| Nombre | Plataforma |
| - | - |
| giFTcurs | Unix-like; Soporte Oficial de la IU |
| Apollon | Unix-like/KDE |
| FilePipe | Microsoft Windows |
| giFToxic | Unix-like |
| giFTui | Unix-like |
| giFTwin32 | Microsoft Windows |
| KCeasy | Microsoft Windows |
| Poisoned | Mac OS X |
| Xfactor | Mac OS X |

Para la comunicación con la interfaz gráfica utiliza un protocolo liviano, el cual permite una abstracción completa del protocolo de red utilizado. Existen múltiples interfaces disponibles para giFT, tanto para Windows, Macintosh o GNU/Linux.

