regenerated html

This commit is contained in:
Arvid Norberg 2009-01-13 21:49:03 +00:00
parent e22b66e36a
commit 9497fe827d
12 changed files with 833 additions and 545 deletions

View File

@ -36,19 +36,19 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of contents</p>
<ul class="simple">
<li><a class="reference internal" href="#downloading-and-building" id="id9">downloading and building</a><ul>
<li><a class="reference internal" href="#building-from-svn" id="id10">building from svn</a></li>
<li><a class="reference internal" href="#building-with-bbv2" id="id11">building with BBv2</a></li>
<li><a class="reference internal" href="#building-with-autotools" id="id12">building with autotools</a></li>
<li><a class="reference internal" href="#building-with-other-build-systems" id="id13">building with other build systems</a></li>
<li><a class="reference internal" href="#build-configurations" id="id14">build configurations</a></li>
<li><a class="reference internal" href="#building-openssl-for-windows" id="id15">building openssl for windows</a></li>
<li><a class="reference" href="#downloading-and-building" id="id9">downloading and building</a><ul>
<li><a class="reference" href="#building-from-svn" id="id10">building from svn</a></li>
<li><a class="reference" href="#building-with-bbv2" id="id11">building with BBv2</a></li>
<li><a class="reference" href="#building-with-autotools" id="id12">building with autotools</a></li>
<li><a class="reference" href="#building-with-other-build-systems" id="id13">building with other build systems</a></li>
<li><a class="reference" href="#build-configurations" id="id14">build configurations</a></li>
<li><a class="reference" href="#building-openssl-for-windows" id="id15">building openssl for windows</a></li>
</ul>
</li>
</ul>
@ -56,12 +56,12 @@
<div class="section" id="downloading-and-building">
<h1>downloading and building</h1>
<p>To acquire the latest version of libtorrent, you'll have to grab it from SVN.
You'll find instructions on how to do this <a class="reference external" href="http://sourceforge.net/svn/?group_id=79942">here</a> (see subversion access).</p>
You'll find instructions on how to do this <a class="reference" href="http://sourceforge.net/svn/?group_id=79942">here</a> (see subversion access).</p>
<p>The build systems supported &quot;out of the box&quot; in libtorrent are boost-build v2
(BBv2) and autotools (for unix-like systems). If you still can't build after
following these instructions, you can usually get help in the <tt class="docutils literal"><span class="pre">#libtorrent</span></tt>
IRC channel on <tt class="docutils literal"><span class="pre">irc.freenode.net</span></tt>.</p>
<p>Community contributed build tutorials can be found on the <a class="reference external" href="http://code.rasterbar.com/libtorrent/wiki/Building">wiki</a>.</p>
<p>Community contributed build tutorials can be found on the <a class="reference" href="http://code.rasterbar.com/libtorrent/wiki/Building">wiki</a>.</p>
<div class="section" id="building-from-svn">
<h2>building from svn</h2>
<p>To build libtorrent from svn you need to check out the libtorrent sources from
@ -69,8 +69,8 @@ sourceforge and also check out the asio sources from its sourceforge cvs.
If you downloaded a release tarball, you can skip this section.</p>
<p>To prepare the directory structure for building, follow these steps:</p>
<ul class="simple">
<li>Check out libtorrent (<a class="reference external" href="http://sourceforge.net/svn/?group_id=79942">instructions</a>).</li>
<li>Check out asio (<a class="reference external" href="http://sourceforge.net/cvs/?group_id=122478">instructions</a>).</li>
<li>Check out libtorrent (<a class="reference" href="http://sourceforge.net/svn/?group_id=79942">instructions</a>).</li>
<li>Check out asio (<a class="reference" href="http://sourceforge.net/cvs/?group_id=122478">instructions</a>).</li>
<li>Copy the <tt class="docutils literal"><span class="pre">asio/include/asio/</span></tt> directory into the <tt class="docutils literal"><span class="pre">libtorrent/include/libtorrent/</span></tt>
directory. Alternatively you can make a symbolic link.</li>
<li>Copy <tt class="docutils literal"><span class="pre">asio/include/asio.hpp</span></tt> into <tt class="docutils literal"><span class="pre">libtorrent/include/libtorrent</span></tt>.</li>
@ -82,7 +82,7 @@ of the following sections depending on which build system you prefer to use.</p>
<h2>building with BBv2</h2>
<p>The primary reason to use boost-build is that it will automatically build the
dependent boost libraries with the correct compiler settings, in order to
ensure that the build targets are link compatible (see <a class="reference external" href="http://boost.org/more/separate_compilation.html">boost guidelines</a>
ensure that the build targets are link compatible (see <a class="reference" href="http://boost.org/more/separate_compilation.html">boost guidelines</a>
for some details on this issue).</p>
<p>Since BBv2 will build the boost libraries for you, you need the full boost
source package. Having boost installed via some package system is usually not
@ -92,7 +92,7 @@ usually not set by the package installer).</p>
to step 3 (assuming you also have boost build installed).</p>
<div class="section" id="step-1-download-boost">
<h3>Step 1: Download boost</h3>
<p>You'll find boost <a class="reference external" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=619445">here</a>.</p>
<p>You'll find boost <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=619445">here</a>.</p>
<p>Extract the archive to some directory where you want it. For the sake of this
guide, let's assume you extract the package to <tt class="docutils literal"><span class="pre">c:\boost_1_34_0</span></tt> (I'm using
a windows path in this example since if you're on linux/unix you're more likely
@ -150,7 +150,7 @@ using darwin : 3.3 : g++-3.3 ;
using darwin : 4.0 : g++-4.0 ;
</pre>
<p>Note that the spaces around the semi-colons and colons are important!</p>
<p>Also see the <a class="reference external" href="http://www.boost.org/doc/html/bbv2/installation.html">official installation instructions</a>.</p>
<p>Also see the <a class="reference" href="http://www.boost.org/doc/html/bbv2/installation.html">official installation instructions</a>.</p>
</div>
<div class="section" id="step-3-building-libtorrent">
<h3>Step 3: Building libtorrent</h3>
@ -215,7 +215,7 @@ Also, make sure the paths are correct in the different environments. In cygwin,
<tt class="docutils literal"><span class="pre">/cygdrive/c/boost_1_34_0</span></tt>). In the windows environment, they should have the typical
windows format (<tt class="docutils literal"><span class="pre">c:/boost_1_34_0</span></tt>).</p>
<p>The <tt class="docutils literal"><span class="pre">Jamfile</span></tt> will define <tt class="docutils literal"><span class="pre">NDEBUG</span></tt> when it's building a release build.
For more build configuration flags see <a class="reference internal" href="#build-configurations">Build configurations</a>.</p>
For more build configuration flags see <a class="reference" href="#build-configurations">Build configurations</a>.</p>
<p>Build features:</p>
<table border="1" class="docutils">
<colgroup>
@ -290,10 +290,10 @@ with the libtorrent package.</li>
<tr><td><tt class="docutils literal"><span class="pre">geoip</span></tt></td>
<td><ul class="first last simple">
<li><tt class="docutils literal"><span class="pre">off</span></tt> - geo ip lookups disabled</li>
<li><tt class="docutils literal"><span class="pre">static</span></tt> - <a class="reference external" href="http://www.maxmind.com/app/api">MaxMind</a> geo ip lookup code linked
<li><tt class="docutils literal"><span class="pre">static</span></tt> - <a class="reference" href="http://www.maxmind.com/app/api">MaxMind</a> geo ip lookup code linked
in statically. Note that this code is under
LGPL license.</li>
<li><tt class="docutils literal"><span class="pre">shared</span></tt> - The <a class="reference external" href="http://www.maxmind.com/app/api">MaxMind</a> geo ip lookup library
<li><tt class="docutils literal"><span class="pre">shared</span></tt> - The <a class="reference" href="http://www.maxmind.com/app/api">MaxMind</a> geo ip lookup library
is expected to be installed on the system and
it will be used.</li>
</ul>
@ -415,8 +415,8 @@ the name of the feature, just the value.</p>
<p>When building the example client on windows, you need to build with
<tt class="docutils literal"><span class="pre">link=static</span></tt> otherwise you may get unresolved external symbols for some
boost.program-options symbols.</p>
<p>For more information, see the <a class="reference external" href="http://www.boost.org/tools/build/v2/index.html">Boost build v2 documentation</a>, or more
specifically <a class="reference external" href="http://www.boost.org/doc/html/bbv2/reference.html#bbv2.advanced.builtins.features">the section on builtin features</a>.</p>
<p>For more information, see the <a class="reference" href="http://www.boost.org/tools/build/v2/index.html">Boost build v2 documentation</a>, or more
specifically <a class="reference" href="http://www.boost.org/doc/html/bbv2/reference.html#bbv2.advanced.builtins.features">the section on builtin features</a>.</p>
</div>
</div>
<div class="section" id="building-with-autotools">
@ -435,7 +435,7 @@ and boost.program_options.</p>
<h3>Step 1: Generating the build system</h3>
<p>No build system is present if libtorrent is checked out from CVS - it
needs to be generated first. If you're building from a released tarball,
you may skip directly to <a class="reference internal" href="#step-2-running-configure">Step 2: Running configure</a>.</p>
you may skip directly to <a class="reference" href="#step-2-running-configure">Step 2: Running configure</a>.</p>
<p>Execute the following commands, in the given order, to generate
the build system:</p>
<pre class="literal-block">
@ -544,7 +544,7 @@ filenames, so if your target is Windows 2000 and up, you may want to use
<p>If you're building in MS Visual Studio, you may have to set the compiler
options &quot;force conformance in for loop scope&quot;, &quot;treat wchar_t as built-in
type&quot; and &quot;Enable Run-Time Type Info&quot; to Yes. For a detailed description
on how to build libtorrent with VS, see <a class="reference external" href="http://code.rasterbar.com/libtorrent/wiki/Building">the wiki</a>.</p>
on how to build libtorrent with VS, see <a class="reference" href="http://code.rasterbar.com/libtorrent/wiki/Building">the wiki</a>.</p>
</div>
<div class="section" id="build-configurations">
<h2>build configurations</h2>

View File

@ -36,12 +36,21 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="section" id="mainline-dht-extensions">
<h1>Mainline DHT extensions</h1>
<p>libtorrent implements a few extensions to the Mainline DHT protocol.</p>
<div class="section" id="get-peers-response">
<h2>get_peers response</h2>
<p>libtorrent always responds with <tt class="docutils literal"><span class="pre">nodes</span></tt> to a get_peers request. If it has
peers for the specified info-hash, it will return <tt class="docutils literal"><span class="pre">values</span></tt> as well. This is
because just because some peer announced to us, doesn't mean that we are
among the 8 closest nodes of the info hash. libtorrent also keeps traversing
nodes using get_peers until it has found the 8 closest ones, and then announces
to those nodes.</p>
</div>
<div class="section" id="client-identification">
<h2>client identification</h2>
<p>In each DHT packet, an extra key is inserted named &quot;v&quot;. This is a string

View File

@ -36,16 +36,16 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of contents</p>
<ul class="simple">
<li><a class="reference internal" href="#examples" id="id2">examples</a><ul>
<li><a class="reference internal" href="#dump-torrent" id="id3">dump_torrent</a></li>
<li><a class="reference internal" href="#simple-client" id="id4">simple client</a></li>
<li><a class="reference internal" href="#make-torrent" id="id5">make_torrent</a></li>
<li><a class="reference" href="#examples" id="id2">examples</a><ul>
<li><a class="reference" href="#dump-torrent" id="id3">dump_torrent</a></li>
<li><a class="reference" href="#simple-client" id="id4">simple client</a></li>
<li><a class="reference" href="#make-torrent" id="id5">make_torrent</a></li>
</ul>
</li>
</ul>
@ -54,7 +54,7 @@
<h1>examples</h1>
<p>Except for the example programs in this manual, there's also a bigger example
of a (little bit) more complete client, <tt class="docutils literal"><span class="pre">client_test</span></tt>. There are separate
instructions for how to use it <a class="reference external" href="client_test.html">here</a> if you'd like to try it. Note that building
instructions for how to use it <a class="reference" href="client_test.html">here</a> if you'd like to try it. Note that building
<tt class="docutils literal"><span class="pre">client_test</span></tt> also requires boost.regex and boost.program_options library.</p>
<div class="section" id="dump-torrent">
<h2>dump_torrent</h2>

View File

@ -36,8 +36,8 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a>
Ludvig Strigeus, <a class="last reference external" href="mailto:ludde&#64;utorrent.com">ludde&#64;utorrent.com</a></td></tr>
<td>Arvid Norberg, <a class="reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a>
Ludvig Strigeus, <a class="last reference" href="mailto:ludde&#64;utorrent.com">ludde&#64;utorrent.com</a></td></tr>
</tbody>
</table>
<div class="section" id="extension-protocol-for-bittorrent">

View File

@ -36,16 +36,16 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of contents</p>
<ul class="simple">
<li><a class="reference internal" href="#introduction" id="id4">introduction</a></li>
<li><a class="reference internal" href="#features" id="id5">features</a></li>
<li><a class="reference internal" href="#portability" id="id6">portability</a></li>
<li><a class="reference internal" href="#license" id="id7">license</a></li>
<li><a class="reference" href="#introduction" id="id2">introduction</a></li>
<li><a class="reference" href="#features" id="id3">features</a></li>
<li><a class="reference" href="#portability" id="id4">portability</a></li>
<li><a class="reference" href="#license" id="id5">license</a></li>
</ul>
</div>
<div class="section" id="introduction">
@ -68,26 +68,35 @@ project (including this documentation). The current state includes the
following features:</p>
<ul class="simple">
<li>trackerless torrents (using the Mainline kademlia DHT protocol) with
some <a class="reference external" href="dht_extensions.html">DHT extensions</a>.</li>
<li>support for IPv6</li>
some <a class="reference" href="dht_extensions.html">DHT extensions</a>. <a class="reference" href="http://bittorrent.org/beps/bep_0005.html">BEP 5</a>.</li>
<li>support for IPv6, including <a class="reference" href="http://bittorrent.org/beps/bep_0007.html">BEP 7</a> and <a class="reference" href="http://bittorrent.org/beps/bep_0024.html">BEP 24</a>.</li>
<li>NAT-PMP and UPnP support (automatic port mapping on routers that supports it)</li>
<li>piece-wise, unordered, incremental file allocation</li>
<li>uses separate threads for checking files and for main downloader, with a
fool-proof thread-safe library interface. (i.e. There's no way for the
user to cause a deadlock). (see <a class="reference external" href="manual.html#threads">threads</a>)</li>
<li>uses a separate disk I/O thread to not have the disk ever block on network or
client interaction. (see <a class="reference" href="manual.html#threads">threads</a>).</li>
<li>supports the bittorrent <a class="reference" href="extension_protocol.html">extension protocol</a>. See <a class="reference" href="manual.html#extensions">extensions</a>. <a class="reference" href="http://bittorrent.org/beps/bep_0010.html">BEP 10</a>.</li>
<li>supports the uTorrent metadata transfer protocol (i.e. magnet links).</li>
<li>supports the uTorrent peer exchange protocol (PEX).</li>
<li>supports local peer discovery (multicasts for peers on the same local network)</li>
<li>adjusts the length of the request queue depending on download rate.</li>
<li>multitracker extension support (as <a class="reference external" href="http://home.elp.rr.com/tur/multitracker-spec.txt">specified by John Hoffman</a>)</li>
<li>has an adjustable read and write disk cache for improved disk throughput.</li>
<li>multitracker extension support (supports both strict <a class="reference" href="http://bittorrent.org/beps/bep_0012.html">BEP 12</a> and the
uTorrent interpretation).</li>
<li>tracker scrapes</li>
<li>supports lt_trackers extension, to exchange trackers between peers</li>
<li>supports both sparse files and compact file allocation (where pieces
are kept consolidated on disk)</li>
<li>super seeding/initial seeding (<a class="reference" href="http://bittorrent.org/beps/bep_0016.html">BEP 16</a>).</li>
<li>supports files &gt; 2 gigabytes.</li>
<li>serves multiple torrents on a single port and in a single thread</li>
<li>fast resume support, a way to get rid of the costly piece check at the
start of a resumed torrent. Saves the storage state, piece_picker state
as well as all local peers in a separate fast-resume file.</li>
<li><a class="reference external" href="manual.html#http-seeding">HTTP seeding</a>, as <a class="reference external" href="http://www.getright.com/seedtorrent.html">specified by Michael Burford of GetRight</a>.</li>
<li><a class="reference" href="manual.html#http-seeding">HTTP seeding</a>, as specified in <a class="reference" href="http://bittorrent.org/beps/bep_0017.html">BEP 17</a> and <a class="reference" href="http://bittorrent.org/beps/bep_0019.html">BEP 19</a>.</li>
<li>piece picking on block-level (as opposed to piece-level).
This means it can download parts of the same piece from different peers.
It will also prefer to download whole pieces from single peers if the
download speed is high enough from that particular peer.</li>
<li>supports the <a class="reference external" href="udp_tracker_protocol.html">udp-tracker protocol</a> by Olaf van der Spek.</li>
<li>supports the udp-tracker protocol. (<a class="reference" href="http://bittorrent.org/beps/bep_0015.html">BEP 15</a>).</li>
<li>queues torrents for file check, instead of checking all of them in parallel.</li>
<li>supports http proxies and basic proxy authentication</li>
<li>gzipped tracker-responses</li>
@ -96,7 +105,6 @@ unchoked peers</li>
<li>implements fair trade. User settable trade-ratio, must at least be 1:1,
but one can choose to trade 1 for 2 or any other ratio that isn't unfair
to the other party.</li>
<li>supports an <a class="reference external" href="extension_protocol.html">extension protocol</a>. See <a class="reference external" href="manual.html#extensions">extensions</a>.</li>
<li>supports the <tt class="docutils literal"><span class="pre">no_peer_id=1</span></tt> extension that will ease the load off trackers.</li>
<li>possibility to limit the number of connections.</li>
<li>delays have messages if there's no other outgoing traffic to the peer, and
@ -109,14 +117,15 @@ resumes. This means it can resume a torrent downloaded by any client.</li>
want to download.</li>
<li>ip filter to disallow ip addresses and ip ranges from connecting and
being connected</li>
<li>private torrents (<a class="reference" href="http://bittorrent.org/beps/bep_0027.html">BEP 27</a>).</li>
</ul>
</div>
<div class="section" id="portability">
<h1>portability</h1>
<p>libtorrent is portable at least among Windows, MacOS X and other UNIX-systems.
It uses Boost.Thread, Boost.Filesystem, Boost.Date_time and various other
boost libraries as well as <a class="reference external" href="http://www.zlib.org">zlib</a> (shipped) and <a class="reference external" href="http://asio.sf.net">asio</a> (shipped). At least version
1.33.1 of boost is required.</p>
boost libraries as well as <a class="reference" href="http://www.zlib.org">zlib</a> (shipped) and <a class="reference" href="http://asio.sf.net">asio</a> (shipped). At least version
1.34.1 of boost is required.</p>
<p>Since libtorrent uses asio, it will take full advantage of high performance
network APIs on the most popular platforms. I/O completion ports on windows,
epoll on linux and kqueue on MacOS X and BSD.</p>
@ -136,12 +145,12 @@ epoll on linux and kqueue on MacOS X and BSD.</p>
</div>
<div class="section" id="license">
<h1>license</h1>
<p>libtorrent is released under the <a class="reference external" href="http://www.opensource.org/licenses/bsd-license.php">BSD-license</a>.</p>
<p>libtorrent is released under the <a class="reference" href="http://www.opensource.org/licenses/bsd-license.php">BSD-license</a>.</p>
<p>This means that you can use the library in your project without having to
release its source code. The only requirement is that you give credit
to the author of the library by including the libtorrent license in your
software or documentation.</p>
<p><a class="reference external" href="projects.html">Here's</a> a list of some projects that uses libtorrent.</p>
<p><a class="reference" href="projects.html">Here's</a> a list of some projects that uses libtorrent.</p>
</div>
</div>
<div id="footer">

View File

@ -32,39 +32,39 @@
<div id="librarySidebar"><ul class="simple">
<li><a class="reference external" href="http://sourceforge.net/project/showfiles.php?group_id=79942">download</a></li>
<li><a class="reference external" href="features.html">features</a></li>
<li><a class="reference external" href="building.html">building libtorrent</a></li>
<li><a class="reference external" href="examples.html">examples</a></li>
<li><a class="reference external" href="manual.html">api documentation</a></li>
<li><a class="reference external" href="make_torrent.html">create torrents</a></li>
<li><a class="reference external" href="running_tests.html">running tests</a></li>
<li><a class="reference external" href="client_test.png">screenshot</a></li>
<li><a class="reference external" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> (<a class="reference external" href="http://dir.gmane.org/gmane.network.bit-torrent.libtorrent">archive</a>)</li>
<li><a class="reference external" href="projects.html">who's using libtorrent?</a></li>
<li><a class="reference external" href="http://code.rasterbar.com/libtorrent/newticket">report bugs</a></li>
<li><a class="reference external" href="http://www.sourceforge.net/projects/libtorrent">sourceforge page</a></li>
<li><a class="reference external" href="http://code.rasterbar.com/libtorrent">wiki</a></li>
<li><a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=79942">download</a></li>
<li><a class="reference" href="features.html">features</a></li>
<li><a class="reference" href="building.html">building libtorrent</a></li>
<li><a class="reference" href="examples.html">examples</a></li>
<li><a class="reference" href="manual.html">api documentation</a></li>
<li><a class="reference" href="make_torrent.html">create torrents</a></li>
<li><a class="reference" href="running_tests.html">running tests</a></li>
<li><a class="reference" href="client_test.png">screenshot</a></li>
<li><a class="reference" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a> (<a class="reference" href="http://dir.gmane.org/gmane.network.bit-torrent.libtorrent">archive</a>)</li>
<li><a class="reference" href="projects.html">who's using libtorrent?</a></li>
<li><a class="reference" href="http://code.rasterbar.com/libtorrent/newticket">report bugs</a></li>
<li><a class="reference" href="http://www.sourceforge.net/projects/libtorrent">sourceforge page</a></li>
<li><a class="reference" href="http://code.rasterbar.com/libtorrent">wiki</a></li>
</ul>
<hr class="docutils" />
<p>Extensions</p>
<ul class="simple">
<li><a class="reference external" href="extension_protocol.html">extensions protocol</a></li>
<li><a class="reference external" href="libtorrent_plugins.html">plugin interface</a></li>
<li><a class="reference external" href="dht_extensions.html">DHT extensions</a></li>
<li><a class="reference external" href="udp_tracker_protocol.html">UDP tracker protocol</a></li>
<li><a class="reference external" href="http://www.getright.com/seedtorrent.html">HTTP seed</a></li>
<li><a class="reference external" href="http://home.elp.rr.com/tur/multitracker-spec.txt">multitracker</a></li>
<li><a class="reference" href="extension_protocol.html">extensions protocol</a></li>
<li><a class="reference" href="libtorrent_plugins.html">plugin interface</a></li>
<li><a class="reference" href="dht_extensions.html">DHT extensions</a></li>
<li><a class="reference" href="udp_tracker_protocol.html">UDP tracker protocol</a></li>
<li><a class="reference" href="http://www.getright.com/seedtorrent.html">HTTP seed</a></li>
<li><a class="reference" href="http://home.elp.rr.com/tur/multitracker-spec.txt">multitracker</a></li>
</ul>
<hr class="docutils" />
<p>Bindings</p>
<ul class="simple">
<li><a class="reference external" href="http://libtorrent-ruby.rubyforge.org/">ruby bindings</a></li>
<li><a class="reference external" href="python_binding.html">python bindings</a></li>
<li><a class="reference" href="http://libtorrent-ruby.rubyforge.org/">ruby bindings</a></li>
<li><a class="reference" href="python_binding.html">python bindings</a></li>
</ul>
<hr class="docutils" />
<ul class="simple">
<li><a class="reference external" href="bittorrent.pdf">Introduction, slides</a></li>
<li><a class="reference" href="bittorrent.pdf">Introduction, slides</a></li>
</ul>
</div>
<div id="libraryBody"><div class="section" id="libtorrent">
@ -72,7 +72,7 @@
<p>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
<a class="reference external" href="client_test.html">example client</a>.</p>
<a class="reference" href="client_test.html">example client</a>.</p>
<p>The main goals of libtorrent are:</p>
<ul class="simple">
<li>to be cpu efficient</li>
@ -94,7 +94,7 @@ library and not a full featured client, although it comes with a working
</form></div>
<div class="section" id="feedback">
<h2>Feedback</h2>
<p>There's a <a class="reference external" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a>, general libtorrent discussion.</p>
<p>There's a <a class="reference" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a>, general libtorrent discussion.</p>
<p>You can usually find me as hydri in <tt class="docutils literal"><span class="pre">#libtorrent</span></tt> on <tt class="docutils literal"><span class="pre">irc.freenode.net</span></tt>.</p>
</div>
<div class="section" id="acknowledgements">
@ -103,7 +103,7 @@ library and not a full featured client, although it comes with a working
<p>Contributions by Magnus Jonsson, Daniel Wallin and Cory Nelson</p>
<p>Thanks to Reimond Retz for bugfixes, suggestions and testing</p>
<p>Project is hosted by sourceforge.</p>
<p><a class="reference external" href="http://sourceforge.net"><img alt="sf_logo" src="http://sourceforge.net/sflogo.php?group_id=7994" /></a></p>
<p><a class="reference" href="http://sourceforge.net"><img alt="sf_logo" src="http://sourceforge.net/sflogo.php?group_id=7994" /></a></p>
</div></div>
</div>
</div>

View File

@ -36,7 +36,7 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="section" id="libtorrent-plugins">
@ -44,21 +44,21 @@
<div class="contents topic" id="contents">
<p class="topic-title first">Contents</p>
<ul class="simple">
<li><a class="reference internal" href="#libtorrent-plugins" id="id1">libtorrent plugins</a><ul>
<li><a class="reference internal" href="#a-word-of-caution" id="id2">a word of caution</a></li>
<li><a class="reference" href="#libtorrent-plugins" id="id1">libtorrent plugins</a><ul>
<li><a class="reference" href="#a-word-of-caution" id="id2">a word of caution</a></li>
</ul>
</li>
<li><a class="reference internal" href="#plugin-interface" id="id3">plugin interface</a></li>
<li><a class="reference internal" href="#torrent-plugin" id="id4">torrent_plugin</a><ul>
<li><a class="reference internal" href="#new-connection" id="id5">new_connection()</a></li>
<li><a class="reference internal" href="#on-piece-pass-on-piece-fail" id="id6">on_piece_pass() on_piece_fail()</a></li>
<li><a class="reference internal" href="#tick" id="id7">tick()</a></li>
<li><a class="reference internal" href="#on-pause-on-resume" id="id8">on_pause() on_resume()</a></li>
<li><a class="reference internal" href="#on-files-checked" id="id9">on_files_checked()</a></li>
<li><a class="reference" href="#plugin-interface" id="id3">plugin interface</a></li>
<li><a class="reference" href="#torrent-plugin" id="id4">torrent_plugin</a><ul>
<li><a class="reference" href="#new-connection" id="id5">new_connection()</a></li>
<li><a class="reference" href="#on-piece-pass-on-piece-fail" id="id6">on_piece_pass() on_piece_fail()</a></li>
<li><a class="reference" href="#tick" id="id7">tick()</a></li>
<li><a class="reference" href="#on-pause-on-resume" id="id8">on_pause() on_resume()</a></li>
<li><a class="reference" href="#on-files-checked" id="id9">on_files_checked()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#peer-plugin" id="id10">peer_plugin</a></li>
<li><a class="reference internal" href="#disk-buffer-holder" id="id11">disk_buffer_holder</a></li>
<li><a class="reference" href="#peer-plugin" id="id10">peer_plugin</a></li>
<li><a class="reference" href="#disk-buffer-holder" id="id11">disk_buffer_holder</a></li>
</ul>
</div>
<p>libtorrent has a plugin interface for implementing extensions to the protocol.
@ -68,7 +68,7 @@ to fit a particular (closed) network.</p>
<p>In short, the plugin interface makes it possible to:</p>
<ul class="simple">
<li>register extension messages (sent in the extension handshake), see
<a class="reference external" href="extension_protocol.html">extensions</a>.</li>
<a class="reference" href="extension_protocol.html">extensions</a>.</li>
<li>add data and parse data from the extension handshake.</li>
<li>send extension messages and standard bittorrent messages.</li>
<li>override or block the handling of standard bittorrent messages.</li>
@ -85,7 +85,7 @@ thread, you cannot use any of the member functions on the internal structures
in libtorrent, since those require the mutex to be locked. Futhermore, you would
also need to have a mutex on your own shared data within the plugin, to make
sure it is not accessed at the same time from the libtorrent thread (through a
callback). See <a class="reference external" href="http://www.boost.org/doc/html/mutex.html">boost thread's mutex</a>. If you need to send out a message from
callback). See <a class="reference" href="http://www.boost.org/doc/html/mutex.html">boost thread's mutex</a>. If you need to send out a message from
another thread, use an internal queue, and do the actual sending in <tt class="docutils literal"><span class="pre">tick()</span></tt>.</p>
</div>
</div>

View File

@ -36,20 +36,30 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of contents</p>
<ul class="simple">
<li><a class="reference internal" href="#overview" id="id2">overview</a></li>
<li><a class="reference internal" href="#high-level-example" id="id3">high level example</a></li>
<li><a class="reference internal" href="#add-files" id="id4">add_files</a></li>
<li><a class="reference internal" href="#set-piece-hashes" id="id5">set_piece_hashes()</a></li>
<li><a class="reference internal" href="#file-storage" id="id6">file_storage</a></li>
<li><a class="reference internal" href="#create-torrent" id="id7">create_torrent</a><ul>
<li><a class="reference internal" href="#id1" id="id8">create_torrent()</a></li>
<li><a class="reference internal" href="#generate" id="id9">generate()</a></li>
<li><a class="reference" href="#overview" id="id2">overview</a></li>
<li><a class="reference" href="#high-level-example" id="id3">high level example</a></li>
<li><a class="reference" href="#add-files" id="id4">add_files</a></li>
<li><a class="reference" href="#set-piece-hashes" id="id5">set_piece_hashes()</a></li>
<li><a class="reference" href="#file-storage" id="id6">file_storage</a><ul>
<li><a class="reference" href="#add-file" id="id7">add_file()</a></li>
</ul>
</li>
<li><a class="reference" href="#create-torrent" id="id8">create_torrent</a><ul>
<li><a class="reference" href="#id1" id="id9">create_torrent()</a></li>
<li><a class="reference" href="#generate" id="id10">generate()</a></li>
<li><a class="reference" href="#set-comment" id="id11">set_comment()</a></li>
<li><a class="reference" href="#set-creator" id="id12">set_creator()</a></li>
<li><a class="reference" href="#set-hash" id="id13">set_hash()</a></li>
<li><a class="reference" href="#add-url-seed" id="id14">add_url_seed()</a></li>
<li><a class="reference" href="#add-node" id="id15">add_node()</a></li>
<li><a class="reference" href="#add-tracker" id="id16">add_tracker()</a></li>
<li><a class="reference" href="#set-priv-priv" id="id17">set_priv() priv()</a></li>
</ul>
</li>
</ul>
@ -157,9 +167,16 @@ public:
bool is_valid() const;
enum flags_t
{
pad_file = 1,
attribute_hidden = 2,
attribute_executable = 4
};
void add_file(file_entry const&amp; e);
void add_file(fs::path const&amp; p, size_type size);
void add_file(fs::wpath const&amp; p, size_type size);
void add_file(fs::path const&amp; p, size_type size, int flags = 0);
void add_file(fs::wpath const&amp; p, size_type size, int flags = 0);
void rename_file(int index, std::string const&amp; new_filename);
void rename_file(int index, std::wstring const&amp; new_filename);
@ -192,6 +209,24 @@ public:
void swap(file_storage&amp; ti);
}
</pre>
<div class="section" id="add-file">
<h2>add_file()</h2>
<blockquote>
<pre class="literal-block">
void add_file(file_entry const&amp; e);
void add_file(fs::path const&amp; p, size_type size, int flags = 0);
void add_file(fs::wpath const&amp; p, size_type size, int flags = 0);
</pre>
</blockquote>
<p>Adds a file to the file storage. The <tt class="docutils literal"><span class="pre">flags</span></tt> argument sets attributes on the file.
The file attributes is an extension and may not work in all bittorrent clients.
The possible arreibutes are:</p>
<pre class="literal-block">
pad_file
attribute_hidden
attribute_executable
</pre>
</div>
</div>
<div class="section" id="create-torrent">
<h1>create_torrent</h1>
@ -199,8 +234,7 @@ public:
<pre class="literal-block">
struct create_torrent
{
create_torrent(file_storage&amp; fs, int piece_size);
create_torrent(file_storage&amp; fs);
create_torrent(file_storage&amp; fs, int piece_size = 0, int pad_size_limit = -1);
create_torrent(torrent_info const&amp; ti);
entry generate() const;
@ -213,28 +247,33 @@ struct create_torrent
void add_url_seed(std::string const&amp; url);
void add_node(std::pair&lt;std::string, int&gt; const&amp; node);
void add_tracker(std::string const&amp; url, int tier = 0);
void set_priv(bool p);
int num_pieces() const;
int piece_length() const;
int piece_size(int i) const;
bool priv() const;
};
</pre>
<div class="section" id="id1">
<h2>create_torrent()</h2>
<blockquote>
<pre class="literal-block">
create_torrent(file_storage&amp; fs, int piece_size);
create_torrent(file_storage&amp; fs);
create_torrent(file_storage&amp; fs, int piece_size = 0, int pad_size_limit = -1);
create_torrent(torrent_info const&amp; ti);
</pre>
</blockquote>
<p>The contrstructor that does not take a piece_size will calculate
a piece size such that the torrent file is roughly 40 kB.</p>
<p>The <tt class="docutils literal"><span class="pre">piece_size</span></tt> is the size of each piece in bytes. It must
be a multiple of 16 kiB. If a piece size of 0 is specified, a
piece_size will becalculated such that the torrent file is roughly 40 kB.</p>
<p>If a <tt class="docutils literal"><span class="pre">pad_size_limit</span></tt> is specified (other than -1), any file larger than
the specified number of bytes will be preceeded by a pad file to align it
with the start od a piece.</p>
<p>The overlad that takes a <tt class="docutils literal"><span class="pre">torrent_info</span></tt> object will make a verbatim
copy of its info dictionary (to preserve the info-hash). The copy of
the info dictionary will be used by <tt class="docutils literal"><span class="pre">generate()</span></tt>. This means
that none of the member functions of create_torrent that affects
the content of the info dictionary (such as <tt class="docutils literal"><span class="pre">set_hash()</span></tt>), will not
the content of the info dictionary (such as <tt class="docutils literal"><span class="pre">set_hash()</span></tt>), will
have any affect.</p>
</div>
<div class="section" id="generate">
@ -249,6 +288,87 @@ generate the flat file, use the bencode() function.</p>
<p>It may be useful to add custom entries to the torrent file before bencoding it
and saving it to disk.</p>
</div>
<div class="section" id="set-comment">
<h2>set_comment()</h2>
<blockquote>
<pre class="literal-block">
void set_comment(char const* str);
</pre>
</blockquote>
<p>Sets the comment for the torrent. The string <tt class="docutils literal"><span class="pre">str</span></tt> should be utf-8 encoded.
The comment in a torrent file is optional.</p>
</div>
<div class="section" id="set-creator">
<h2>set_creator()</h2>
<blockquote>
<pre class="literal-block">
void set_creator(char const* str);
</pre>
</blockquote>
<p>Sets the creator of the torrent. The string <tt class="docutils literal"><span class="pre">str</span></tt> should be utf-8 encoded.
This is optional.</p>
</div>
<div class="section" id="set-hash">
<h2>set_hash()</h2>
<blockquote>
<pre class="literal-block">
void set_hash(int index, sha1_hash const&amp; h);
</pre>
</blockquote>
<p>This sets the SHA-1 hash for the specified piece (<tt class="docutils literal"><span class="pre">index</span></tt>). You are required
to set the hash for every piece in the torrent before generating it. If you have
the files on disk, you can use the high level convenience function to do this.
See <a class="reference" href="#set-piece-hashes">set_piece_hashes()</a>.</p>
</div>
<div class="section" id="add-url-seed">
<h2>add_url_seed()</h2>
<blockquote>
<pre class="literal-block">
void add_url_seed(std::string const&amp; url);
</pre>
</blockquote>
<p>This adds a url seed to the torrent. You can have any number of url seeds. For a
single file torrent, this should be an HTTP url, pointing to a file with identical
content as the file of the torrent. For a multi-file torrent, it should point to
a directory containing a directory with the same name as this torrent, and all the
files of the torrent in it.</p>
</div>
<div class="section" id="add-node">
<h2>add_node()</h2>
<blockquote>
<pre class="literal-block">
void add_node(std::pair&lt;std::string, int&gt; const&amp; node);
</pre>
</blockquote>
<p>This adds a DHT node to the torrent. This especially useful if you're creating a
tracker less torrent. It can be used by clients to bootstrap their DHT node from.
The node is a hostname and a port number where there is a DHT node running.
You can have any number of DHT nodes in a torrent.</p>
</div>
<div class="section" id="add-tracker">
<h2>add_tracker()</h2>
<blockquote>
<pre class="literal-block">
void add_tracker(std::string const&amp; url, int tier = 0);
</pre>
</blockquote>
<p>Adds a tracker to the torrent. This is not strictly required, but most torrents
use a tracker as their main source of peers. The url should be an <a class="reference" href="http://">http://</a> or udp://
url to a machine running a bittorrent tracker that accepts announces for this torrent's
info-hash. The tier is the fallback priority of the tracker. All trackers with tier 0 are
tried first (in any order). If all fail, trackers with tier 1 are tried. If all of those
fail, trackers with tier 2 are tried, and so on.</p>
</div>
<div class="section" id="set-priv-priv">
<h2>set_priv() priv()</h2>
<blockquote>
<pre class="literal-block">
void set_priv(bool p);
bool priv() const;
</pre>
</blockquote>
<p>Sets and queries the private flag of the torrent.</p>
</div>
</div>
</div>
<div id="footer">

File diff suppressed because it is too large Load Diff

View File

@ -32,25 +32,39 @@
<h1 class="title">projects using libtorrent</h1>
<p>These are some of the public projects that uses libtorrent. If you want your
project listed here, let <a class="reference external" href="mailto:arvid&#64;rasterbar.com">me</a> know.</p>
project listed here, let <a class="reference" href="mailto:arvid&#64;rasterbar.com">me</a> know.</p>
<div class="entry container">
<a class="reference external image-reference" href="http://www.fireaddons.com/"><img align="right" alt="firetorrent.png" class="align-right" src="firetorrent.png" /></a>
<a class="reference image-reference" href="http://www.fireaddons.com/"><img align="right" alt="firetorrent.png" class="align-right" src="firetorrent.png" /></a>
<p><strong>firetorrent</strong></p>
<p><a class="reference external" href="http://www.fireaddons.com/">firetorrent</a> is a single click torrent downloader plugin
<p><a class="reference" href="http://www.fireaddons.com/">firetorrent</a> is a single click torrent downloader plugin
for Firefox and Wyzo.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://www.qbittorrent.org/"><img align="right" alt="qbittorrent_thumb.jpg" class="align-right" src="qbittorrent_thumb.jpg" /></a>
<a class="reference image-reference" href="http://www.qbittorrent.org/"><img align="right" alt="qbittorrent_thumb.jpg" class="align-right" src="qbittorrent_thumb.jpg" /></a>
<p><strong>qBittorrent</strong></p>
<p><a class="reference external" href="http://www.qbittorrent.org/">qBittorrent</a> is a QT bittorrent
<p><a class="reference" href="http://www.qbittorrent.org/">qBittorrent</a> is a QT bittorrent
client available for linux (likely
portable to most other desktops as
well). Written by Christophe Dumez.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://btg.berlios.de//"><img align="right" alt="btg_thumb.jpg" class="align-right" src="btg_thumb.jpg" /></a>
<a class="reference image-reference" href="http://deluge-torrent.org/"><img align="right" alt="deluge.png" class="align-right" src="deluge.png" /></a>
<p><strong>deluge torrent</strong></p>
<p><a class="reference" href="http://deluge-torrent.org/">deluge Torrent</a> is a more full-featured yet still lightweight bittorrent
client. It has the ability to automatically resume partial downloads and
background to the system tray.</p>
</div>
<div class="entry container">
<a class="reference image-reference" href="http://excito.com/bubba/about-bubba.html"><img align="right" alt="bubba.png" class="align-right" src="bubba.png" /></a>
<p><strong>bubba</strong></p>
<p><a class="reference" href="http://excito.com/bubba/about-bubba.html">Bubba</a> is a mini-sized server, designed to fit your home better than
an always running PC. Boasting Torrent downloader, DAAP streaming,
Web, E-mail, printer and FTP server etc.</p>
</div>
<div class="entry container">
<a class="reference image-reference" href="http://btg.berlios.de//"><img align="right" alt="btg_thumb.jpg" class="align-right" src="btg_thumb.jpg" /></a>
<p><strong>btg</strong></p>
<p><a class="reference external" href="http://btg.berlios.de//">btg</a> is a unix bittorrent client
<p><a class="reference" href="http://btg.berlios.de//">btg</a> is a unix bittorrent client
which is run as a daemon. It has
multiple user interfaces which
connects to the daemon. One GUI
@ -58,117 +72,110 @@ connects to the daemon. One GUI
(ncurses) and one web interface
(accessable through a web browser).
Written by Michael Wojciechowski
and Johan Ström.</p>
and Johan Strˆm.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://deluge-torrent.org/"><img align="right" alt="deluge.png" class="align-right" src="deluge.png" /></a>
<p><strong>deluge torrent</strong></p>
<p><a class="reference external" href="http://deluge-torrent.org/">deluge Torrent</a> is a more full-featured yet still lightweight bittorrent
client. It has the ability to automatically resume partial downloads and
background to the system tray.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://www.binarynotions.com/halite-bittorrent-client"><img align="right" alt="halite_thumb.png" class="align-right" src="halite_thumb.png" /></a>
<a class="reference image-reference" href="http://www.binarynotions.com/halite-bittorrent-client"><img align="right" alt="halite_thumb.png" class="align-right" src="halite_thumb.png" /></a>
<p><strong>halite BitTorrent</strong></p>
<p><a class="reference external" href="http://www.binarynotions.com/halite-bittorrent-client">Halite</a> is a windows bittorrent client controllabel via an xml-rpc
<p><a class="reference" href="http://www.binarynotions.com/halite-bittorrent-client">Halite</a> is a windows bittorrent client controllabel via an xml-rpc
interface.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://www.freedownloadmanager.org/"><img align="right" alt="fdm.png" class="align-right" src="fdm.png" /></a>
<a class="reference image-reference" href="http://www.freedownloadmanager.org/"><img align="right" alt="fdm.png" class="align-right" src="fdm.png" /></a>
<p><strong>Free download manager</strong></p>
<p><a class="reference external" href="http://www.freedownloadmanager.org/">FDM</a> is a powerful, easy-to-use and absolutely free download accelerator and
<p><a class="reference" href="http://www.freedownloadmanager.org/">FDM</a> is a powerful, easy-to-use and absolutely free download accelerator and
manager. Moreover, FDM is 100% safe, open-source software distributed under
GPL License.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://lincetorrent.sourceforge.net/"><img align="right" alt="lince.png" class="align-right" src="lince.png" /></a>
<a class="reference image-reference" href="http://lincetorrent.sourceforge.net/"><img align="right" alt="lince.png" class="align-right" src="lince.png" /></a>
<p><strong>Lince</strong></p>
<p><a class="reference external" href="http://lincetorrent.sourceforge.net/">Lince</a> is a bittorrent client using libtorrent to handle bittorrent protocol
<p><a class="reference" href="http://lincetorrent.sourceforge.net/">Lince</a> is a bittorrent client using libtorrent to handle bittorrent protocol
and gtkmm for the interface, it has been designed to be a light and full
featured client.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://electricsheep.org"><img align="right" alt="electric_sheep_thumb.jpg" class="align-right" src="electric_sheep_thumb.jpg" /></a>
<a class="reference image-reference" href="http://electricsheep.org"><img align="right" alt="electric_sheep_thumb.jpg" class="align-right" src="electric_sheep_thumb.jpg" /></a>
<p><strong>electric sheep</strong></p>
<p><a class="reference external" href="http://electricsheep.org">electric sheep</a> is a screensaver
<p><a class="reference" href="http://electricsheep.org">electric sheep</a> is a screensaver
which collectively generates
animations and lets the users
vote which one to live on.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://getmiro.com"><img align="right" alt="miro.jpg" class="align-right" src="miro.jpg" /></a>
<a class="reference image-reference" href="http://getmiro.com"><img align="right" alt="miro.jpg" class="align-right" src="miro.jpg" /></a>
<p><strong>Miro</strong></p>
<p><a class="reference external" href="http://getmiro.com">Miro</a> is a free application for channels of internet video (also known as
<p><a class="reference" href="http://getmiro.com">Miro</a> is a free application for channels of internet video (also known as
video podcasts and video rss). Miro is designed to be easy to use and to give
you an elegant fullscreen viewing experience.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://tvitty.com"><img align="right" alt="tvitty.jpg" class="align-right" src="tvitty.jpg" /></a>
<a class="reference image-reference" href="http://tvitty.com"><img align="right" alt="tvitty.jpg" class="align-right" src="tvitty.jpg" /></a>
<p><strong>Tvitty</strong></p>
<p><a class="reference external" href="http://tvitty.com">tvitty</a> is a bittorrent client for Vista Media Center, which allows
<p><a class="reference" href="http://tvitty.com">tvitty</a> is a bittorrent client for Vista Media Center, which allows
searching and downloading of torrents directly on your TV.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://fatrat.dolezel.info"><img align="right" alt="fatrat.png" class="align-right" src="fatrat.png" /></a>
<a class="reference image-reference" href="http://fatrat.dolezel.info"><img align="right" alt="fatrat.png" class="align-right" src="fatrat.png" /></a>
<p><strong>FatRat</strong></p>
<p><a class="reference external" href="http://fatrat.dolezel.info">FatRat</a> is an open source download manager for Linux/Unix systems written in
<p><a class="reference" href="http://fatrat.dolezel.info">FatRat</a> is an open source download manager for Linux/Unix systems written in
C++ with the help of the Trolltech Qt 4 library. It's simple to use and
install.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://deviant-soft.ws/tiki-index.php?page=LeechCraft"><img align="right" alt="leechcraft.png" class="align-right" src="leechcraft.png" /></a>
<a class="reference image-reference" href="http://deviant-soft.ws/tiki-index.php?page=LeechCraft"><img align="right" alt="leechcraft.png" class="align-right" src="leechcraft.png" /></a>
<p><strong>LeechCraft</strong></p>
<p><a class="reference external" href="http://deviant-soft.ws/tiki-index.php?page=LeechCraft">LeechCraft</a> LeechCraft is a free open source cross-platform extensible
<p><a class="reference" href="http://deviant-soft.ws/tiki-index.php?page=LeechCraft">LeechCraft</a> LeechCraft is a free open source cross-platform extensible
software, which primary goal is support of file sharing networks and
protocols like HTTP and FTP</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://www.moopolice.de"><img align="right" alt="moopolice_thumb.gif" class="align-right" src="moopolice_thumb.gif" /></a>
<a class="reference image-reference" href="http://www.moopolice.de"><img align="right" alt="moopolice_thumb.gif" class="align-right" src="moopolice_thumb.gif" /></a>
<p><strong>MooPolice</strong></p>
<p><a class="reference external" href="http://www.moopolice.de">MooPolice</a> is a windows bittorrent
<p><a class="reference" href="http://www.moopolice.de">MooPolice</a> is a windows bittorrent
client with a quite unique look.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://code.google.com/p/linkage/"><img align="right" alt="Linkage.png" class="align-right" src="Linkage.png" /></a>
<a class="reference image-reference" href="http://code.google.com/p/linkage/"><img align="right" alt="Linkage.png" class="align-right" src="Linkage.png" /></a>
<p><strong>Linkage</strong></p>
<p><a class="reference external" href="http://code.google.com/p/linkage/">Linkage</a> is a gtkmm client that aims to be middle weight.</p>
<p><a class="reference" href="http://code.google.com/p/linkage/">Linkage</a> is a gtkmm client that aims to be middle weight.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://www.bitrocket.org/"><img align="right" alt="bitrocket_thumb.png" class="align-right" src="bitrocket_thumb.png" /></a>
<a class="reference image-reference" href="http://www.bitrocket.org/"><img align="right" alt="bitrocket_thumb.png" class="align-right" src="bitrocket_thumb.png" /></a>
<p><strong>BitRocket</strong></p>
<p><a class="reference external" href="http://www.bitrocket.org/">BitRocket</a> is a MacOS X bittorrent client.</p>
<p><a class="reference" href="http://www.bitrocket.org/">BitRocket</a> is a MacOS X bittorrent client.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://www.bitscast.com/software/"><img align="right" alt="bitscast_thumb.png" class="align-right" src="bitscast_thumb.png" /></a>
<a class="reference image-reference" href="http://www.bitscast.com/software/"><img align="right" alt="bitscast_thumb.png" class="align-right" src="bitscast_thumb.png" /></a>
<p><strong>BitsCast</strong></p>
<p>RSS reader, podcast subscriber,
video feed downloader, bittorrent
feed downloader. See <a class="reference external" href="http://www.bitscast.com/software/">BitsCast</a>
feed downloader. See <a class="reference" href="http://www.bitscast.com/software/">BitsCast</a>
homepage for more info.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://code.google.com/p/bitfox/"><img align="right" alt="bitfox.png" class="align-right" src="bitfox.png" /></a>
<a class="reference image-reference" href="http://code.google.com/p/bitfox/"><img align="right" alt="bitfox.png" class="align-right" src="bitfox.png" /></a>
<p><strong>Bitfox</strong></p>
<p><a class="reference external" href="http://code.google.com/p/bitfox/">Bitfox</a> is a firefox plugin integrating bittorrent downloads in firefox.</p>
<p><a class="reference" href="http://code.google.com/p/bitfox/">Bitfox</a> is a firefox plugin integrating bittorrent downloads in firefox.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://bitslug.sourceforge.net/"><img align="right" alt="bitslug_thumb.png" class="align-right" src="bitslug_thumb.png" /></a>
<a class="reference image-reference" href="http://bitslug.sourceforge.net/"><img align="right" alt="bitslug_thumb.png" class="align-right" src="bitslug_thumb.png" /></a>
<p><strong>BitSlug</strong></p>
<p><a class="reference external" href="http://bitslug.sourceforge.net/">BitSlug</a> is a MacOSX cocoa client.</p>
<p><a class="reference" href="http://bitslug.sourceforge.net/">BitSlug</a> is a MacOSX cocoa client.</p>
</div>
<div class="entry container">
<a class="reference external image-reference" href="http://www.int64.org/arctic.html"><img align="right" alt="arctic_thumb.png" class="align-right" src="arctic_thumb.png" /></a>
<a class="reference image-reference" href="http://www.int64.org/arctic.html"><img align="right" alt="arctic_thumb.png" class="align-right" src="arctic_thumb.png" /></a>
<p><strong>Arctic Torrent</strong></p>
<p><a class="reference external" href="http://www.int64.org/arctic.html">Arctic Torrent</a> is a light-weight
<p><a class="reference" href="http://www.int64.org/arctic.html">Arctic Torrent</a> is a light-weight
bittorrent client for windows.
Written by Cory Nelson.</p>
</div>
<p><strong>hrktorrent</strong></p>
<p><a class="reference external" href="http://50hz.ws/hrktorrent/">hrktorrent</a> hrktorrent is a light console torrent client written in C++.</p>
<p><a class="reference" href="http://50hz.ws/hrktorrent/">hrktorrent</a> hrktorrent is a light console torrent client written in C++.</p>
<p><strong>DelCo</strong></p>
<p><a class="reference external" href="http://delco.cs.tut.fi/">DelCo</a> is a research project at tempere university of technology, finland.</p>
<p><a class="reference" href="http://delco.cs.tut.fi/">DelCo</a> is a research project at tempere university of technology, finland.</p>
<p><strong>FireANT</strong></p>
<p><a class="reference external" href="http://antisnottv.net/">FireANT</a> is a video blog available
<p><a class="reference" href="http://antisnottv.net/">FireANT</a> is a video blog available
for Windows and Mac OSX.</p>
</div>
<div id="footer">

View File

@ -36,18 +36,18 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of contents</p>
<ul class="simple">
<li><a class="reference internal" href="#building" id="id2">building</a><ul>
<li><a class="reference internal" href="#building-using-setup-py" id="id3">building using setup.py</a></li>
<li><a class="reference internal" href="#building-using-boost-build" id="id4">building using boost build</a></li>
<li><a class="reference" href="#building" id="id2">building</a><ul>
<li><a class="reference" href="#building-using-setup-py" id="id3">building using setup.py</a></li>
<li><a class="reference" href="#building-using-boost-build" id="id4">building using boost build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#using-libtorrent-in-python" id="id5">using libtorrent in python</a></li>
<li><a class="reference" href="#using-libtorrent-in-python" id="id5">using libtorrent in python</a></li>
</ul>
</div>
<div class="section" id="building">
@ -92,10 +92,10 @@ using python : 2.3 : /usr ;
</pre>
<p>The bindings require <em>at least</em> python version 2.2.</p>
<p>For more information on how to install and set up boost-build, see the
<a class="reference external" href="building.html#step-2-setup-bbv2">building libtorrent</a> section.</p>
<a class="reference" href="building.html#step-2-setup-bbv2">building libtorrent</a> section.</p>
<p>Once you have boost-build set up, you cd to the <tt class="docutils literal"><span class="pre">bindings/python</span></tt>
directory and invoke <tt class="docutils literal"><span class="pre">bjam</span></tt> with the apropriate settings. For the available
build variants, see <a class="reference external" href="building.html#step-3-building-libtorrent">libtorrent build options</a>.</p>
build variants, see <a class="reference" href="building.html#step-3-building-libtorrent">libtorrent build options</a>.</p>
<p>For example:</p>
<pre class="literal-block">
$ bjam dht-support=on boost=source release link=static
@ -109,7 +109,7 @@ bin/darwin-4.0/release/dht-support-on/link-static/logging-none/threading-multi/l
<div class="section" id="using-libtorrent-in-python">
<h1>using libtorrent in python</h1>
<p>The python interface is nearly identical to the C++ interface. Please refer to
the <a class="reference external" href="manual.html">main library reference</a>. The main differences are:</p>
the <a class="reference" href="manual.html">main library reference</a>. The main differences are:</p>
<dl class="docutils">
<dt>asio::tcp::endpoint</dt>
<dd>The endpoint type is represented as a tuple of a string (as the address) and an int for

View File

@ -36,23 +36,23 @@
<col class="docinfo-content" />
<tbody valign="top">
<tr><th class="docinfo-name">Author:</th>
<td>Arvid Norberg, <a class="last reference external" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of contents</p>
<ul class="simple">
<li><a class="reference internal" href="#introduction" id="id2">introduction</a></li>
<li><a class="reference internal" href="#connecting" id="id3">connecting</a></li>
<li><a class="reference internal" href="#announcing" id="id4">announcing</a></li>
<li><a class="reference internal" href="#scraping" id="id5">scraping</a></li>
<li><a class="reference internal" href="#errors" id="id6">errors</a></li>
<li><a class="reference internal" href="#actions" id="id7">actions</a></li>
<li><a class="reference internal" href="#extensions" id="id8">extensions</a><ul>
<li><a class="reference internal" href="#authentication" id="id9">authentication</a></li>
<li><a class="reference" href="#introduction" id="id2">introduction</a></li>
<li><a class="reference" href="#connecting" id="id3">connecting</a></li>
<li><a class="reference" href="#announcing" id="id4">announcing</a></li>
<li><a class="reference" href="#scraping" id="id5">scraping</a></li>
<li><a class="reference" href="#errors" id="id6">errors</a></li>
<li><a class="reference" href="#actions" id="id7">actions</a></li>
<li><a class="reference" href="#extensions" id="id8">extensions</a><ul>
<li><a class="reference" href="#authentication" id="id9">authentication</a></li>
</ul>
</li>
<li><a class="reference internal" href="#credits" id="id10">credits</a></li>
<li><a class="reference" href="#credits" id="id10">credits</a></li>
</ul>
</div>
<div class="section" id="introduction">
@ -60,10 +60,10 @@
<p>A tracker with the protocol &quot;udp://&quot; in its URI
is supposed to be contacted using this protocol.</p>
<p>This protocol is supported by
<a class="reference external" href="http://xbtt.sourceforge.net">xbt-tracker</a>.</p>
<a class="reference" href="http://xbtt.sourceforge.net">xbt-tracker</a>.</p>
<p>For additional information and descritptions of
the terminology used in this document, see
the <a class="reference external" href="http://wiki.theory.org/index.php/BitTorrentSpecification">protocol specification</a></p>
the <a class="reference" href="http://wiki.theory.org/index.php/BitTorrentSpecification">protocol specification</a></p>
<p>All values are sent in network byte order (big endian). The sizes
are specified with ANSI-C standard types.</p>
<p>If no response to a request is received within 15 seconds, resend
@ -120,7 +120,7 @@ identify the protocol.</td>
<td>action</td>
<td>Describes the type of packet, in this
case it should be 0, for connect.
If 3 (for error) see <a class="reference internal" href="#errors">errors</a>.</td>
If 3 (for error) see <a class="reference" href="#errors">errors</a>.</td>
</tr>
<tr><td>int32_t</td>
<td>transaction_id</td>
@ -164,7 +164,7 @@ establishing the connection.</td>
<tr><td>int32_t</td>
<td>action</td>
<td>Action. in this case, 1 for announce.
See <a class="reference internal" href="#actions">actions</a>.</td>
See <a class="reference" href="#actions">actions</a>.</td>
</tr>
<tr><td>int32_t</td>
<td>transaction_id</td>
@ -229,7 +229,7 @@ in the reply. Use -1 for default.</td>
</tr>
<tr><td>uint16_t</td>
<td>extensions</td>
<td>See <a class="reference internal" href="#extensions">extensions</a></td>
<td>See <a class="reference" href="#extensions">extensions</a></td>
</tr>
</tbody>
</table>
@ -251,8 +251,8 @@ in the reply. Use -1 for default.</td>
<td>action</td>
<td>The action this is a reply to. Should
in this case be 1 for announce.
If 3 (for error) see <a class="reference internal" href="#errors">errors</a>.
See <a class="reference internal" href="#actions">actions</a>.</td>
If 3 (for error) see <a class="reference" href="#errors">errors</a>.
See <a class="reference" href="#actions">actions</a>.</td>
</tr>
<tr><td>int32_t</td>
<td>transaction_id</td>
@ -326,7 +326,7 @@ establishing of the connection.</td>
<tr><td>int32_t</td>
<td>action</td>
<td>The action, in this case, 2 for
scrape. See <a class="reference internal" href="#actions">actions</a>.</td>
scrape. See <a class="reference" href="#actions">actions</a>.</td>
</tr>
<tr><td>int32_t</td>
<td>transaction_id</td>
@ -373,7 +373,7 @@ the MTU.</p>
<td>action</td>
<td>The action, should in this case be
2 for scrape.
If 3 (for error) see <a class="reference internal" href="#errors">errors</a>.</td>
If 3 (for error) see <a class="reference" href="#errors">errors</a>.</td>
</tr>
<tr><td>int32_t</td>
<td>transaction_id</td>
@ -433,7 +433,7 @@ leechers.</td>
<tr><td>int32_t</td>
<td>action</td>
<td>The action, in this case 3, for error.
See <a class="reference internal" href="#actions">actions</a>.</td>
See <a class="reference" href="#actions">actions</a>.</td>
</tr>
<tr><td>int32_t</td>
<td>transaction_id</td>
@ -466,7 +466,7 @@ describing the error.</td>
bits are assigned:</p>
<blockquote>
<ul class="simple">
<li>1 = <a class="reference internal" href="#authentication">authentication</a>.</li>
<li>1 = <a class="reference" href="#authentication">authentication</a>.</li>
</ul>
</blockquote>
<div class="section" id="authentication">