diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 000000000..894a439fb --- /dev/null +++ b/AUTHORS @@ -0,0 +1,14 @@ + +Written by Arvid Norberg. Copyright (c) 2003-2005 + +Contributions by Magnus Jonsson, Daniel Wallin and Cory Nelson + +Big thanks to Michael Wojciechowski and Peter Koeleman for making the +autotools scripts. + +Thanks to Reimond Retz for bugfixes, suggestions and testing + +Thanks to University of UmeΠfor providing development and test hardware. + +Project is hosted by sourceforge. + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 000000000..14555a05b --- /dev/null +++ b/ChangeLog @@ -0,0 +1,24 @@ + +Initial release 0.9 + + * multitracker support + * serves multiple torrents on a single port and a single thread + * supports http proxies and proxy authentication + * gzipped tracker-responses + * block level piece picker + * queues torrents for file check, instead of checking all of them in parallel + * uses separate threads for checking files and for main downloader + * upload and download rate limits + * piece-wise, unordered, incremental file allocation + * fast resume support + * supports files > 2 gigabytes + * supports the no_peer_id=1 extension + * support for udp-tracker protocol + * number of connections limit + * delays sending have messages + * can resume pieces downloaded in any order + * adjusts the length of the request queue depending on download rate + * supports compact=1 + * selective downloading + * ip filter + diff --git a/NEWS b/NEWS new file mode 100644 index 000000000..cd9658d6b --- /dev/null +++ b/NEWS @@ -0,0 +1,3 @@ + +initial release of libtorrent 0.9 + diff --git a/README b/README new file mode 100644 index 000000000..0b19bf61f --- /dev/null +++ b/README @@ -0,0 +1,25 @@ +libtorrent is a C++ library that aims to be a good alternative to all the +other bittorrent implementations around. It is a +library and not a full featured client, although it comes with a working +example client. + +The main goals of libtorrent are: + + * to be cpu efficient + * to be memory efficient + * to be very easy to use + +See docs/manual.html for more detailed build and usage instructions. + +To build with autotools, run: + + ./configure + +Followed by + + make + +When libtorrent is built, finish off by running the tests: + + make check + diff --git a/docs/client_test.html b/docs/client_test.html new file mode 100644 index 000000000..9e95166b7 --- /dev/null +++ b/docs/client_test.html @@ -0,0 +1,54 @@ + + + + + + +client_test example program + + + +
+

client_test example program

+

Client test is a, more or less, complete bittorrent client. It lacks most +settings and you can't start or stop torrents once you've started it. All +the settings are hardcoded. The commandline arguments are:

+
+client_test <filename1.torrent> <filename2.torrent> ...
+
+

You can start any number of torrent downloads/seeds via the commandline. +If one argument starts with http:// it is interpreted as a tracker +announce url, and it expects an info-hash as the next argument. The info-hash +has ti be hex-encoded. For example: 2410d4554d5ed856d69f426c38791673c59f4418. +If you pass an announce url and info-hash, a torrent-less download is started. +It relies on that at least one peer on the tracker is running a libtorrent based +client and has the metadata (.torrent file). The metadata extension in +libtorrent will then download it from that peer (or from those peers if more +than one).

+

While running, the client_test sample will look something like this:

+
client_test.png
+

The commands available in the client are:

+
+ +
+

The list at the bottom (shown if you press d) shows which blocks has +been requested from which peer. The green background means that it has been +downloaded. It shows that fast peers will prefer to request whole pieces +instead of dowloading parts of pieces. It may make it easier to determine +which peer that sent the corrupt data if a piece fails the hash test.

+
unicode_support.png
+

There's unicode support on linux, MacOS X and Windows.

+
+ + diff --git a/docs/client_test.png b/docs/client_test.png new file mode 100644 index 000000000..56bb8dec9 Binary files /dev/null and b/docs/client_test.png differ diff --git a/docs/client_test.rst b/docs/client_test.rst new file mode 100755 index 000000000..62592b310 --- /dev/null +++ b/docs/client_test.rst @@ -0,0 +1,48 @@ +=========================== +client_test example program +=========================== + +Client test is a, more or less, complete bittorrent client. It lacks most +settings and you can't start or stop torrents once you've started it. All +the settings are hardcoded. The commandline arguments are:: + + client_test ... + +You can start any number of torrent downloads/seeds via the commandline. +If one argument starts with ``http://`` it is interpreted as a tracker +announce url, and it expects an info-hash as the next argument. The info-hash +has ti be hex-encoded. For example: ``2410d4554d5ed856d69f426c38791673c59f4418``. +If you pass an announce url and info-hash, a torrent-less download is started. +It relies on that at least one peer on the tracker is running a libtorrent based +client and has the metadata (.torrent file). The metadata extension in +libtorrent will then download it from that peer (or from those peers if more +than one). + +While running, the ``client_test`` sample will look something like this: + +.. image:: client_test.png + +The commands available in the client are: + + * ``q`` quits the client (there will be a delay while the client waits + for tracker responses) + * ``l`` toggle log. Will display the log at the bottom, informing about + tracker and peer events. + * ``i`` toggles torrent info. Will show the peer list for each torrent. + * ``d`` toggle download info. Will show the block list for each torrent, + showing downloaded and requested blocks. + * ``p`` pause all torrents. + * ``u`` unpause all torrents. + * ``r`` force tracker reannounce for all torrents. + +The list at the bottom (shown if you press ``d``) shows which blocks has +been requested from which peer. The green background means that it has been +downloaded. It shows that fast peers will prefer to request whole pieces +instead of dowloading parts of pieces. It may make it easier to determine +which peer that sent the corrupt data if a piece fails the hash test. + +.. image:: unicode_support.png + +There's unicode support on linux, MacOS X and Windows. + + diff --git a/docs/index.html b/docs/index.html index f12760055..bde040035 100755 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@ sourceforge page documentation report bugs -screenshot +screenshot mailing list @@ -30,7 +30,7 @@

libtorrent is a C++ library that aims to be a good alternative to all the other bittorrent implementations around. It is a library and not a full featured client, although it comes with a working -example client.

+example client.

The main goals of libtorrent are: