# DC++

DC++ is a free and open-source, peer-to-peer file-sharing client that can be used for connecting to the Direct Connect network or to the ADC protocol. It is developed primarily by Jacek Sieka, nicknamed arnetheduck.

## History and background

DC++ is a free and open-source alternative to the original client, NeoModus Direct Connect (NMDC); it connects to the same file-sharing network and supports the same file-sharing protocol. One of the reasons commonly attributed to the popularity of DC++ is that it has no adware of any kind, unlike NMDC.
Many other clients exist for the Direct Connect network, and most of these are DC++ "mods": modified versions of DC++, based on DC++'s source code. A partial list of DC++ mods is given below. Some of these clients were developed for specialized communities (e.g. music-sharing communities), or in order to support specific experimental features, or perhaps features that have been rejected from inclusion in DC++ itself. An example of an experimental feature is hashing, which was initially implemented in BCDC++ and later adopted by DC++.
As of 2008, DC++ had around 90% market share of the Direct Connect community.

## Forks

An advantage of the free and open-source nature of DC++ is that several mods have been released which add features to the original client.
Many users send patches to DC++ which are included in future releases, but some features are rejected by the developer. Stated reasons for rejecting a patch are because they are coded poorly, or that the feature is frivolous, abusable or overly specialized, and does not belong in the main client. Examples include: upload bandwidth limiting (many users feel that upload bandwidth limiting is a form of cheating, while other users not using a full-duplex network connection can only achieve reasonable download speeds by limiting uploads), colorized chat, specialized operator functions (e.g. client/share checking).
The developers of some forks contribute features and bug fixes back upstream to DC++.

## Client software comparison
### General

| Client | FOSS | Software license | Active | Release date (latest version) |
| AirDC++ | Yes | GNU GPLv2 or later | Yes | 2023-08-27 (v4.21) |
| AirDC++ Web Client | Yes | GNU GPLv2 or later | Yes | 2024-12-07 (v2.13.2) |
| ApexDC++ | Yes | GNU GPLv2 or later | No | 2018-12-25 (v1.6.5) |
| DC++ | Yes | GNU GPLv2 or later | Yes | 2024-11-09 (v0.882) |
| EiskaltDC++ | Yes | GNU GPLv3 or later | Yes | 2021-03-03 (v2.4.2) |
| FlylinkDC++ | Yes | GNU GPLv2 or later | Yes | 2023-12-31 (r601 build 23343) |
| LinuxDC++ | Yes | GNU GPLv2 or later | No | 2011-04-17 (v1.1.0) |
| RSX++ | Yes | GNU GPLv2 or later | No | 2011-04-14 (v1.21) |
| StrongDC++ | Yes | GNU GPLv2 or later | No | 2010-12-27 (v2.42) |
| TkDC++ | Yes | GNU GPLv2 or later | No | 2010-11-29 (v1.3) |

### Operating system support

| Client | Windows | Linux | macOS | BSD | Haiku |
| AirDC++ | Yes | No | No | No | No |
| AirDC++ Web Client | No | Yes | No | No | No |
| ApexDC++ | Yes | No | No | No | No |
| DC++ | Yes | No | No | No | No |
| EiskaltDC++ | Yes | Yes | Yes | Yes | Yes |
| FlylinkDC++ | Yes | No | No | No | No |
| LinuxDC++ | No | Yes | No | Yes | No |
| RSX++ | Yes | No | No | No | No |
| StrongDC++ | Yes | No | No | No | No |
| TkDC++ | Yes | No | No | No | No |

### Interface and programming

| Client | GUI | CLI | WebUI | Programming language | Based on |
| AirDC++ | Yes | No | Yes | C++ | StrongDC++ |
| AirDC++ Web Client | No | Yes | Yes | C++ | AirDC++ |
| ApexDC++ | Yes | No | No | C++ | StrongDC++ |
| DC++ | Yes | No | No | C++ | - |
| EiskaltDC++ | Yes | Yes | Yes | C++ | DC++ |
| FlylinkDC++ | Yes | No | Yes | C++ | ApexDC++/StrongDC++ |
| LinuxDC++ | Yes | No | No | C++ | DC++ |
| RSX++ | Yes | No | No | C++ | StrongDC++ |
| StrongDC++ | Yes | No | No | C++ | DC++ |
| TkDC++ | Yes | No | No | C++ | StrongDC++ / DC++ bzr |

### Features

| Client | Magnet URI | UPnP | NAT traversal | DHT | Encryption | IPv6 | IDNA | Plugin | Proxy | Hash algorithms | Protocol support |
| AirDC++ | Yes | Yes | Yes | No | Yes | Yes | No | | Yes | Tiger Tree Hash | TIGR, ADCS |
| AirDC++ Web Client | Yes | Yes | Yes | No | Yes | Yes | No | | Yes | Tiger Tree Hash | TIGR, ADCS |
| ApexDC++ | Yes | Yes | Yes | Yes | Yes | No | No | Lua, C++ | Yes | Tiger Tree Hash | TIGR, ADCS |
| DC++ | Yes | Yes | Yes | No | Yes | Yes | No | | Yes | Tiger Tree Hash | TIGR, ADCS |
| EiskaltDC++ | Yes | Yes | Yes | Yes | Yes | No | Yes | Lua, Qt Script, QML | Yes | Tiger Tree Hash | TIGR, ADCS |
| FlylinkDC++ | Yes | Yes | Yes | Yes | Yes | No | Yes | | Yes | Tiger Tree Hash | TIGR, ADCS |
| LinuxDC++ | Yes | Yes | Yes | No | Yes | No | No | | Yes | Tiger Tree Hash | TIGR, ADCS |
| RSX++ | Yes | Yes | Yes | Yes | Yes | No | No | Lua, C++ | Yes | Tiger Tree Hash | TIGR, ADCS |
| StrongDC++ | Yes | Yes | Yes | Yes | Yes | No | No | | Yes | Tiger Tree Hash | TIGR, ADCS |