EiskaltDC++ – file sharing using DC and ADC protocols
This program is licensed under the GNU General Public License. See the COPYING file for more information.
EiskaltDC++ is a cross-platform program that uses the Direct Connect (DC aka NMDC) and Advanced Direct Connect (ADC) protocols. It is compatible with DC++, FlylinkDC++, LinuxDC++ and other DC clients. EiskaltDC++ also interoperates with all common DC hub software.
Currently supported systems (in order of decreasing importance): GNU/Linux, macOS, MS Windows, FreeBSD, Haiku and GNU/Hurd.
Currently supported features (not full list):
See ChangeLog.txt file.
For build from sources see INSTALL file.
GNU/Linux and FreeBSD users may install packages from official and unofficial repositories, ports, etc.
macOS users may install and update official builds using Homebrew cask:
brew cask install eiskaltdcpp
or download app bundles from SourceForge (see links below) and install them manually. Program doesn't have embedded mechanism of updates, so in this case users should monitor updates themselves.
Haiku users may install official package from HaikuPorts:
pkgman install eiskaltdcpp
MS Windows users may download official installers and portable builds from SourceForge (see links below). Program doesn't have embedded mechanism of updates, so users should monitor updates themselves.
EiskaltDC++ is designed mostly for experienced users who know how DC works, which settings should be used with their type of network connection, etc.. This short introduction is not intended to describe such basic things.
Here are small recommendations for initial configuration after first launch of program:
- Open Preferences dialog and set nickname (it is important), default encoding for DC hubs (for example, WINDOWS-1251 for Russian hubs), type of incoming connections (active mode, firewall with UPnP or passive mode) and downloads directory.
- Open Public Hubs widget and connect to few popular public hubs (you may sort list by amount of users or by total amount of shared data).
- Open Search widget and try to search any popular file. (Do not forget to use spaces as words separator.)
- Add few hubs to list of Favourite hubs and enable auto connect on program startup for them.
- Program settings will be saved on program exit.
All programs from EiskaltDC++ project (
eiskaltdcpp-daemon) use the same common settings. So once you have correctly configured connections in EiskaltDC++ Qt, for example, you may launch
eiskaltdcpp-daemon and use Web UI for ruling it (search files, add them to downloads queue, etc.).
During the development EiskaltDC++ in past years we have used different CVS (Subversion first and then Git) and different development models. Currently the process looks like this:
- All development of is done in git
workbranch or special (feature) branches detached from
- Change log file should be updated together with changes in source code. It may be done in a same git commit or in a separate git commit depending on situation. Just use common sense for this. (There were no rule of updating change log in the past which leads to significant delaying of stable releases.)
- Once the changes from
workbranch are ready for usage and build of program is tested for most important systems (Linux, macOS, Windows) they may be merged to
- Daily builds of program for testers, active users and just curious people should be done from git
- Version scheme for builds from git snapshots should look like:
<patch>are not digits but numbers).
<major>.<minor>.<patch>is last git tag (for stable release),
<commits>– the number of commits since last git tag and
<hash>– short hash of current git commit.
- Once there is noticeable amount of changes since last stable release or if there are very important bug fixes which should be quickly delivered to users new git tag (
v<major>.<minor>.<patch>) is created and tarballs with sources are uploaded to SourceForge.
- There is no strict limitation of type of changes suitable for new releases: even "minor" or "patch" version may contain new features and significant changes in GUI.
- In case of noticeable changes in Core of program (library libeiskaltdcpp) the
<major>part of program version should be changed.
- In case of significant changes (for example, total code refactoring) in any part of program the
<major>part of program version should be changed.
- In case when where are very few changes since last stable release, but they are important and should be quickly delivered to users the
<patch>part of program version should be changed.
- Main developers of EiskaltDC++ are listed in AUTHORS file.
- Program contains source code from other free and and open-source projects. All copyright information from them is pedantically documented in special file.
- Part of program with GTK+ UI contains additional Credits.txt file. (This is just a list of contributors from LinuxDC++ and FreeDC++ projects, not all of them are copyright holders.)
There are a lot of people who were involved into EiskaltDC++ development. Some of them are listed in license headers in source files, some of them might be found only in the history of commits in our git repository. Also there are translators, testers and just active users. We are thankful to all them!
How you can help
If you found a bug please report about it in our Bug Tracker.
You may use daily builds of program or program compiled from sources by yourself (from git
master branch) for testing and suggesting of new features, and for reporting about new bugs (if they happen).
Comments and wishes
We like constructive comments and wishes to functions of program. You may contact with us in public chat room for discussing of your ideas. Some of them will be drawn up as feature requests in our Bug Tracker.
The work of translators is quite routine and boring. People who do it usually lose interests and their translations become incomplete. If you see such situation for translation to your native language, please join to our translations team. It is extremely welcome!
Some useful notes about translation process you may find at special wiki page.
There are many ways to contribute to the EiskaltDC++ project, if you think you can do a better job with any of the EiskaltDC++ graphics, then go right ahead!
Patches are welcome! Contact to EiskaltDC++ developers if you are working on them.
Currently we have active package maintainers for Debian and Ubuntu distros, for macOS and MS Windows. If you have suggestions about improving of packaging, just contact with them.
If you want to prepare personal builds of EiskaltDC++ for MS Windows and macOS systems, it is very welcome! We may add links to them into our documentation. Becoming an official maintaner for these systems is more complicated, but also possible.
For other GNU/Linux and *BSD systems the situation is quite clear: just update packages (pkgbuilds, ebuild, etc.) in official repositories of your favorite distributions or make a Personal Package Archive (PPA) with them. We will add links to them into our documentation.
We do not accept donations for EiskaltDC++ project as a whole, because there are no expenditures for infrastructure and such like. (Thanks to owners of GitHub, SourceForge, Transifex and Travis CI services for their support of FOSS projects!)
But you may send donations to project contributors (developers, maintainers, translators, etc.) on personal basis. Just contact with them using the contact information from AUTHORS file.
Packages and installers
- Official PPA for Ubuntu and distros based on it (stable releases)
- Official PPA for Ubuntu and distros based on it (daily builds)
- Official Snap packages for Ubuntu and other distros (daily builds)
- Official builds for Windows
- Official builds for macOS
- Official packages in Debian
- Official packages in Ubuntu
- Official packages in Fedora
- Official packages in Gentoo Linux
- Official packages in ALT Linux
- Official packages in Haiku
- Official packages in FreeBSD
- Packages for openSUSE (official and unofficial)
- Packages for Arch Linux (in AUR)
- Packages for different Linux distros (the best aggregator of links)
- Packages for different Linux distros (alternative aggregator of links)
- Unofficial PPA for Debian and Ubuntu (maintained by Alex_P)
- Project statistics on GitHub
- Project statistics on OpenHub
- Project FreeDC++ (was basis of eiskaltdcpp-gtk) (sources)
- Official Web UI for eiskaltdcpp-daemon (sources)
- Alternative Web UI for eiskaltdcpp-daemon (sources)
- Old screenshots (in English)
- Old screenshots (in Russian)
- Old notes about EiskaltDC++ (in Russian)
- Old notes about FreeDC++ (in Russian)
- Old FAQ about EiskaltDC++ (in Russian)
- Setting up interception of magnet links from web browsers (in Russian)
- Review of DC clients for Linux (in Russian)
- DC++ and programs based on it at Wikipedia (in English)
- DC++ and programs based on it at Wikipedia (in Russian)
- Valknut and programs based on it at Wikipedia (in English)
- EiskaltDC++ at Wikipedia (in Russian)