gtk-gnutella logo
Current version: 1.1.13

The Most Efficient Gnutella Client

gtk-gnutella is a server/client for the Gnutella peer-to-peer network. It runs on Microsoft Windows, MacOS and every Unix-like system which supports GTK+ (1.2 or above). The GNOME desktop environment is not required. It is currently developed and tested under Linux (Debian) as well as NetBSD. It is known to run at least on Linux, FreeBSD, NetBSD, Darwin, Solaris, Tru64 UNIX (OSF/1), SGI IRIX, BeOS whereas CPU architectures include x86, AMD64, PowerPC, SPARC, MIPS. And of course Microsoft Windows (XP at least).

gtk-gnutella is free open-source software and released under the GNU General Public License (GPL).

gtk-gnutella is not finished yet, but it is fully functional: you may share, search, and download. And it is stable too, users usually just leave it run unattended for days.

This website follows HTML5 and CSS3 web standards and uses cookies only to record language preferences.

All ideas and comments are welcome to the gtk-gnutella-devel mailing list. Bugs should be reported to the Bug Tracker

We need additional contributors for C development and documentation


22 October 2017, Version 1.1.13 Released

This release primarily addresses issues that were left-over in 1.1.12. Do not use that previous release, migrate from 1.1.11 to 1.1.13 directly!

The main issue was that of Partial File Sharing. Numerous bugs, dating from 7 years or more, were lurking because my local configuration had switched PFS off for testing, and it had never been turned back on! In particular, completed files were not properly shared, it was not possible to upload their THEX since it was not recomputed, and the files were not properly indexed in the Query Routing Table due to bugs in the background task layer.

In case of a crash, we now dump the value of all the Gnutella properties to be able to spot configurations that deviate from the norm. Too many bugs were reported and ignored because they could not be reproduced, often due to not having the same setup when attempting to debug!

Another nasty bug was fixed: it was not possible to change the IP support configuration without causing an immediate crash. The reason is due to a change that was integrated in 1.1.12 to allow IPv6 UDP traffic from G2 nodes. The problem was that this created an extra client stack on top of the low-level UDP traffic scheduler and it was not properly cleaned-up when switching IP configurations, leading to an assertion failure!

New Features
Bug Fixes
Under the Hood

20 September 2017, Version 1.1.12 Released

This release fixes a very critical bug that was only manifesting when Partial File Sharing was turned on, and which caused possible memory corruption (leading to a sure crash later) when enqueuing new files for downloading.

New Features
Bug Fixes
Under the Hood

11 November 2016, Version 1.1.11 Released

This release fixes a portability issue on FreeBSD and introduces a main core feature and minor new GUI features.

The main feature is the addition of "equivalence classes" defining word aliases, used when sharing files and querying for them.

Currently, the only supported equivalence class deals with naming of series. Indeed, there are various conventions that can be used to represent these, and it makes searching inefficient: either one will lookup for all the possible variations, or one will miss some of the files.

For instance, episode #8 of an hypothetical season #4 can be represented by any of these strings:

	{ "s04e08", "4x08", "408", "04x08", "0408" }

Thanks to the equivalence class, a file bearing one of these strings can be searched for (and located successfully) by using any of the other strings. Of course, since this is a local processing, the more servents out there are deployed with this aliasing support, the more efficient the feature becomes!

There are also new GUI features: the "Clear completed" button from the Download pane is now doing someething useful, and the current page of different notebooks is remembered across sessions. The only one which is not restored on normal resuming is the main notebook tab. It will be restored if GTKG is restarted after a crash, but otherwise the application will always start up within the Network tab.

In the Uploads tab, upload requests coming from a G2 servent will now be flagged with a "[G2]" tab right after the IP address. This helps seeing how the Gnutella and G2 network unification is evolving.

New Features
Bug Fixes
Under the Hood

Older news... Logo   Glade   RSS Feed Available   Ohloh Metrics   Coverity Scan Build Status   gtk-gnutella at GitHub  
gtk-gnutella © 2000-2014 by Yann Grossel, Raphaël Manfredi and various contributors.