<commit_before>==========
libtorrent
==========


=================== ===============
`sourceforge page`_ `mailing list`_
=================== ===============

.. _sourceforge page: http://www.sourceforge.net/projects/libtorrent
.. _mailing list: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss

.. contents::

introduction
============

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.

__ links.html

The main goals of libtorrent are:

	* to be cpu efficient
	* to be memory efficient
	* to be very easy to use

libtorrent is not finished. It is an ongoing project (including this documentation).
The current state includes the following features:

	* multitracker extension support (as `described by TheShadow`__)
	* serves multiple torrents on a single port and a single thread
	* supports http proxies and proxy authentication
	* gzipped tracker-responses
	* piece picking on block-level (as opposed to piece-level) like in Azureus_
	* queues torrents for file check, instead of checking all of them in parallel.
	* 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).
	* can limit the upload bandwidth usage
	* piece-wise file allocation
	* upload rate limit, balanced depending on download speed and upload bandwidth
<commit_msg>*** empty log message ***<commit_after>==========
libtorrent
==========


=================== ===============
`sourceforge page`_ `mailing list`_
=================== ===============

.. _sourceforge page: http://www.sourceforge.net/projects/libtorrent
.. _mailing list: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss

.. contents::

introduction
============

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.

__ links.html

The main goals of libtorrent are:

	* to be cpu efficient
	* to be memory efficient
	* to be very easy to use

libtorrent is not finished. It is an ongoing project (including this documentation).
The current state includes the following features:

	* multitracker extension support (as `described by TheShadow`__)
	* serves multiple torrents on a single port and a single thread
	* supports http proxies and proxy authentication
	* gzipped tracker-responses
	* piece picking on block-level (as opposed to piece-level) like in Azureus_
	* queues torrents for file check, instead of checking all of them in parallel.
	* 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).
	* can limit the upload bandwidth usage and the maximum number of unchoked peers
	* piece-wise file allocation
	* tries to maintain a 1:1 share ratio between all peers but also shifts free
	  download to peers as free upload. To maintain a global 1:1 ratio.

{'fraction_non_alphanumeric': 0.11733416770963705, 'fraction_numerical': 0.0012515644555694619, 'mean_word_length': 4.5120689655172415, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '294373', 'n_tokens_mistral': 868, 'n_tokens_neox': 817, 'n_words': 402}