Unworkable is a free BitTorrent implementation.
Goals of this project include efficiency, simplicity and high code quality.
Unworkable is single threaded and asynchronous, written in ANSI C using libevent and mmap() for performance.
Unworkable is developed primarily under OpenBSD, however it has been written with portability in mind and should compile and run out of the box on at least:
� FreeBSD 6.2
� Ubuntu Linux 7.10
� Centos 5
� Mac OS X
� Solaris 10
I go out of my way to use slower, harsher platforms for development (e.g. old sparc64, g3 macppc, arm zaurus) to weed out endianness and pointer issues, and of course to get a feel for performance problems. This approach has led to quite reasonable CPU and memory requirements. Transferring at around 150KB/sec used 5% CPU and 1.4M memory on a 270Mhz UltraSparc II machine. Given that contemporary machines are roughly an order of magnitude faster than this, performance should be within acceptable bounds.
Unworkable is supposed to be simple to use.
$ ./unworkable mymusic.torrent
mymusic.torrent hash ok: 35% rx: 9538KB 103.0KB/s 02:38 ETA
A manual page is included in the source, and built by default under OpenBSD.
- 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.