# DC++

DC++ es un cliente peer-to-peer libre, que puede ser usado para conectarse a una red Direct Connect o al protocolo ADC. Fue desarrollado inicialmente por Jacek Sieka.
DC++ es una alternativa de código abierto al cliente original, NeoModus Direct Connect (NMDC); este se conecta a la misma red y soporta el mismo protocolo de transferencia de archivos. Una de las razones que se atribuyen a la popularidad de DC++ es la inexistencia de software adware, no como NMDC.
Existen multitud de clientes para las redes Direct Connect, pero la mayoría son modificaciones de DC++: versiones modificadas de DC++, basadas en el código de DC++. Una lista de modificaciones de DC++ se muestran más abajo. Algunos de estos clientes son desarrollados por comunidades especializadas (por ejemplo, comunidades musicales), o para incluir soporte para funcionalidades experimentales, o para añadir funcionalidades rechazadas en DC++. Un ejemplo de una funcionalidad experimental es el hashing, que fue inicialmente implementado en BCDC++ y posteriormente adoptado por DC++.

## Derivados de DC++

Como consecuencia de la naturaleza abierta del código de DC++ existen multitud de derivados que añaden funcionalidades extra.
Muchos usuarios envían parches a DC++ con la intención de mejorarlo, pero algunas mejoras son rechazadas por el desarrollador. Las razones suelen ser una calidad del código pobre, o mejoras banales, o demasiado especializadas que no deberían ir en el programa principal. Ejemplos: límite de ancho de banda en la subida (muchos usuarios creen que limitar la subida es una forma de aprovecharse de los demás, pero mientras haya usuarios que no usen conexiones full-dúplex sólo pueden descargar razonablemente rápido limitando las subidas), chat coloreado, funciones especializadas...
Los desarrolladores de algunas modificaciones, especialmente los de BCDC++, contribuyen con funcionalidades y reparación de fallos que luego pueden volver al cliente principal DC++.
Debajo la lista de las modificaciones más conocidas y sus características:

### Características generales

| Cliente | FOSS | Licencia de software | Activo |
| AirDC++ | Sí | GNU GPLv2 o posterior | Sí |
| TkDC++ | Sí | GNU GPLv2 o posterior | Sí |
| ApexDC++ | Sí | GNU GPLv2 o posterior | Sí |
| DC++ | Sí | GNU GPLv2 o posterior | Sí |
| EiskaltDC++ | Sí | GNU GPLv3 o posterior | Sí |
| FlylinkDC++ | Sí | GNU GPLv2 o posterior | Sí |
| LinuxDC++ | Sí | GNU GPLv2 o posterior | Sí |
| RSX++ | Sí | GNU GPLv2 o posterior | Sí |
| StrongDC++ | Sí | GNU GPLv2 o posterior | Sí |
| Cliente | FOSS | Licencia de software | Activo |

### Compatibilidad con sistemas operativos

| Cliente | Windows | GNU/Linux | Mac OS X | BSD | Haiku |
| AirDC++ | Sí | No | No | No | No |
| TkDC++ | Sí | No | No | No | No |
| ApexDC++ | Sí | No | No | No | No |
| DC++ | Sí | No | No | No | No |
| EiskaltDC++ | Sí | Sí | Sí | Sí | Sí |
| FlylinkDC++ | Sí | No | No | No | No |
| LinuxDC++ | No | Sí | No | Sí | No |
| RSX++ | Sí | No | No | No | No |
| StrongDC++ | Sí | No | No | No | No |
| Cliente | Windows | GNU/Linux | Mac OS X | BSD | Haiku |

### Interfaz y programación

| Cliente | GUI | CLI | Otro | Lenguaje de programación | Basado en |
| AirDC++ | Sí | No | No | C++ | StrongDC++ |
| TkDC++ | Sí | No | No | C++ | StrongDC++ / DC++ bzr |
| ApexDC++ | Sí | No | No | C++ | StrongDC++ |
| DC++ | Sí | No | No | C++ | - |
| EiskaltDC++ | Sí | No | No | C++ | DC++ |
| FlylinkDC++ | Sí | No | No | C++ | ApexDC++/StrongDC++ |
| LinuxDC++ | Sí | No | No | C++ | DC++ |
| RSX++ | Sí | No | No | C++ | StrongDC++ |
| StrongDC++ | Sí | No | No | C++ | DC++ |
| Cliente | GUI | CLI | Otro | Lenguaje de programación | Basado en |

### Características

| Cliente | Magnet URI | UPnP | NAT traversal | DHT | Cifrado | IPv6 | IDNA | Plug-in | Proxy | Algoritmos hash | Soporte de protocolos | Otras |
| AirDC++ | Sí | Sí | Sí | No | Sí | No | No | | Sí | Tiger Tree Hash | TIGR, ADCS | |
| ApexDC++ | Sí | Sí | Sí | Sí | Sí | No | No | LUA, C++ | Sí | Tiger Tree Hash | TIGR, ADCS | |
| DC++ | Sí | Sí | Sí | No | Sí | No | No | | Sí | Tiger Tree Hash | TIGR, ADCS | |
| EiskaltDC++ | Sí | Sí | Sí | No | Sí | No | Sí | LUA, C++, Qt Script, QML | Sí | Tiger Tree Hash | TIGR, ADCS | |
| FlylinkDC++ | Sí | Sí | Sí | Sí | Sí | No | Sí | | Sí | Tiger Tree Hash | TIGR, ADCS | |
| LinuxDC++ | Sí | Sí | Sí | No | Sí | No | No | | Sí | Tiger Tree Hash | TIGR, ADCS | |
| RSX++ | Sí | Sí | Sí | Sí | Sí | No | No | LUA, C++ | Sí | Tiger Tree Hash | TIGR, ADCS | |
| StrongDC++ | Sí | Sí | Sí | Sí | Sí | No | No | | Sí | Tiger Tree Hash | TIGR, ADCS | |
| Cliente | Magnet URI | UPnP | NAT traversal | DHT | Cifrado | IPv6 | IDNA | Plug-in | Proxy | Algoritmos hash | Soporte de protocolos | Otras |