Full-featured BitTorrent client package and utilities
Go to file
Matt Joiner 90b27618ac The signedness on several tracker.AnnounceRequest fields now matters
Sending negative ports and lefts through to HTTP trackers was making them mad.
2015-03-27 17:22:00 +11:00
cmd cmd/torrent-magnet: Converts a torrent from stdin to a magnet link 2015-03-27 17:16:50 +11:00
data Use rogpeppe's sortimports to fix this goimports ordering madness 2015-03-26 17:18:08 +11:00
dht Use rogpeppe's sortimports to fix this goimports ordering madness 2015-03-26 17:18:08 +11:00
fs Use rogpeppe's sortimports to fix this goimports ordering madness 2015-03-26 17:18:08 +11:00
internal Add piece blob torrent.Data storage, and move testutil to internal/, add basic transfer test for Client and blob 2015-02-27 01:46:02 +11:00
iplist Rewrite import paths for migration from Bitbucket 2015-03-20 16:37:44 +11:00
logonce logonce is a package that prints each distinct message only once 2014-11-16 13:04:44 -06:00
mmap_span mmap_span: Avoid allocating the span slice on every use 2014-12-05 00:54:55 -06:00
mse Use rogpeppe's sortimports to fix this goimports ordering madness 2015-03-26 17:18:08 +11:00
peer_protocol Add support for Fast Extension 2015-03-12 20:06:23 +11:00
tracker The signedness on several tracker.AnnounceRequest fields now matters 2015-03-27 17:22:00 +11:00
util Merge all the tracker packages, why would anyone want them separately? 2015-03-27 15:12:15 +11:00
LICENSE The license is MPL2.0 2015-03-25 17:35:33 +11:00
NOTES Add UTP support, disable TCP for now. DHT moves to another port 2014-11-16 13:29:31 -06:00
README.md Fix typos 2015-03-21 09:11:45 -04:00
TODO TODO 2015-03-01 14:33:10 +11:00
client.go The signedness on several tracker.AnnounceRequest fields now matters 2015-03-27 17:22:00 +11:00
client_test.go Use rogpeppe's sortimports to fix this goimports ordering madness 2015-03-26 17:18:08 +11:00
config.go Add the ability to disable PEX 2015-03-25 15:42:14 +11:00
connection.go Prevent bad metadata_size in extended handshakes from stalling completion of metadata 2015-03-27 15:36:59 +11:00
connection_test.go Use rogpeppe's sortimports to fix this goimports ordering madness 2015-03-26 17:18:08 +11:00
magnet.go Make ParseMagnetURI easier to read 2015-03-22 13:50:16 -04:00
magnet_test.go Fix test error message 2015-03-22 13:57:57 -04:00
misc.go More public interface tidying 2015-03-20 23:52:53 +11:00
ordered.go More cleaning of public interface 2015-03-08 17:28:14 +11:00
ordered_test.go More cleaning of public interface 2015-03-08 17:28:14 +11:00
stateless.go Rewrite import paths for migration from Bitbucket 2015-03-20 16:37:44 +11:00
torrent.go Prevent bad metadata_size in extended handshakes from stalling completion of metadata 2015-03-27 15:36:59 +11:00
torrent_test.go Rewrite import paths for migration from Bitbucket 2015-03-20 16:37:44 +11:00
worst_conns.go Piece priorities, torrent read interface and many fixes 2014-12-03 01:07:50 -06:00

README.md

torrent

Codeship GoDoc

This repository implements BitTorrent-related packages and command-line utilities in Go.

There is support for protocol encryption, DHT, PEX, uTP, and various extensions. There are several storage backends provided, blob, file, mmap. You can use the provided binaries in ./cmd, or use torrent as a library for your own applications.

Installation

Install the library package with go get github.com/anacrolix/torrent, or the provided cmds with go get github.com/anacrolix/torrent/cmd/....

Library example

There is a small example in the package documentation.

Torrent utility

There's a provided utility that downloads torrents from the command-line.

$ go get github.com/anacrolix/torrent/cmd/torrent
$ torrent 'magnet:?xt=urn:btih:ZOCMZQIPFFW7OLLMIC5HUB6BPCSDEOQU'
2015/03/20 22:51:41 main.go:96: downloaded ALL the torrents
$ md5sum ubuntu-14.04.1-desktop-amd64.iso
119cb63b48c9a18f31f417f09655efbd  ubuntu-14.04.1-desktop-amd64.iso
$ echo such amaze
wow