Unworkable is a BitTorrent implementation written as an asynchronous, single-threaded application in ANSI C using libevent and mmap() for performance. Its goals include efficiency, simplicity, and high code quality.
|Tags||Communications File Sharing|
|Licenses||BSD Original BSD Revised|
|Operating Systems||POSIX BSD FreeBSD Mac OS X Solaris OpenBSD Linux Windows Cygwin|
|Implementation||C YACC Python|
Release Notes: This release fixes a couple of edge-case bugs in the mapping of pieces to on-disk mmap()'d files. This makes multi-file torrent downloads more reliable. Mandriva 2008.1 Linux is a known working platform.
Release Notes: Support for Fast Extensions (BEP 6), avoiding long hash checks with Fast Resume, and many bugfixes that make BitTorrent transfers happen at a faster rate. Linux support has been improved.
Release Notes: Sending of peer keep-alives was implemented. The trace log now contains timestamps. Intermittent tracker failures are now tolerated better. Support for Arch Linux was added. An off-by-four bug which could cause segfaults on some platforms was fixed along with zero padding in peer ID generation. There was an overall code reduction and re-factoring plus improvements to the documentation.
Release Notes: This release fixes a subtle bug in the download strategy, and removes numerous format specifier bugs by bringing the source in line with C99. Major refactoring and code cleanup has been done. An initial implementation of a TCP/IP "control server" has been added, and some initial work done towards a decoupled Python UI. There are portability improvements to build and run on Windows (Cygwin). Build and runtime testing on Fedora 7, Gentoo Linux, and Mac OS X 10.5 (i386).
Release Notes: This is mostly a portability release, adding support for FreeBSD 6.2, Solaris 10, and Mac OS X. In addition, various UI improvements were made, including a progress meter during checksumming, and annotation of download progress values to make the distinction between how much data has passed checksum versus absolute bytes received. The manual page was cleaned up. Numerous bugs were fixed, including support for sane handling of zero-length padding files.