libtorrent with premiere torrent support
Go to file
Steven Siloti 7b5bdc3be9 DHT nodes can NOT share a receive buffer
While the simulation is single threaded, because async_receive_from_impl uses
post() to invoke the receive handler it is possible for multiple receive
handlers to be queued up in the io_service at the same time. If this happens
with a shared receive buffer the last packet received will overwrite all the
other packets before they are handled.

The use of post() is necessary to avoid unbounded recursion in the read handler
so each node must get its own buffer.
2016-01-10 18:30:16 -08:00
bindings use datetime type for time_duration in python binding 2016-01-07 17:47:53 -05:00
docs fix docs makefile to build html by default. fix the reference doc generator to strip TORRENT_FINAL macro 2015-12-28 19:50:02 -05:00
ed25519 clean up use of error categories 2015-11-24 00:50:51 -05:00
examples deprecate resolve-countries 2015-12-14 21:32:30 -05:00
include/libtorrent Merge pull request #376 from arvidn/discardable-alerts 2016-01-10 19:59:05 -05:00
m4 Update python m4 macro 2015-12-12 22:25:18 +01:00
simulation DHT nodes can NOT share a receive buffer 2016-01-10 18:30:16 -08:00
src comment out verbose pex logging. fix bug in disabled_storage and an error reporting issue on short reads in default_storage 2016-01-10 11:50:56 -05:00
test Avoid pass IPv6 address to current implementation of DHT while adding a node 2016-01-09 18:46:19 -05:00
tools remove out-dated python script 2015-12-20 12:39:30 -05:00
.gitignore Ignore more build files in git 2015-10-20 12:09:54 +01:00
.gitmodules add .gitmodules 2015-08-07 23:19:37 -04:00
.travis.yml we don't use ditaa anymore 2015-12-20 12:41:22 -05:00
AUTHORS cleanup root of repository 2015-06-05 23:14:53 -04:00
CMakeLists.txt export verify_message and incoming_error 2015-12-05 18:20:08 -08:00
COPYING update copyright year 2015-06-03 05:18:48 +00:00
ChangeLog forward port fixes from RC_1_0 2016-01-03 23:34:57 -05:00
Jamfile Merge pull request #312 from ssiloti/export-verify-message 2015-12-30 22:51:38 -05:00
Jamroot.jam add Jamroot.jam 2012-06-14 05:43:10 +00:00
LICENSE fix no-deprecated build. extend .travis.yml to build the 3 test configurations too. rename README to README.rst 2015-06-05 02:31:52 -04:00
Makefile.am Remove un-needed line break that causes errors 2015-11-19 07:32:53 -05:00
NEWS polishing, update copyright 2014-07-02 07:17:50 +00:00
README.rst make codecov link use list view 2015-12-19 23:06:00 -05:00
appveyor.yml fix appveyor build 2015-11-07 00:22:13 -05:00
autotool.sh merged configure fix from RC_0_16 2012-11-19 05:23:46 +00:00
bootstrap.sh merged bootstrap.sh script from RC_0_16 2013-05-29 02:11:15 +00:00
build_dist.sh merged changes from RC_1_0 2014-11-12 16:57:59 +00:00
configure.ac Added missing dependencies to fix examples build 2015-08-12 11:36:29 +03:00
libtorrent-rasterbar-cmake.pc.in don't add to pkg-config. #462 2009-01-07 02:22:58 +00:00
libtorrent-rasterbar.pc.in merged fixes from RC_0_16 2013-09-07 21:27:07 +00:00
setup.py Add/fix shebang in python scripts, add execute permission (linux), remove whitespace/tabs at end of line 2015-07-12 14:24:01 +08:00

README.rst

libtorrent
----------

.. image:: https://travis-ci.org/arvidn/libtorrent.svg?branch=master
    :target: https://travis-ci.org/arvidn/libtorrent

.. image:: https://ci.appveyor.com/api/projects/status/w7teauvub5813mew/branch/master?svg=true
    :target: https://ci.appveyor.com/project/arvidn/libtorrent/branch/master

.. image:: https://codecov.io/github/arvidn/libtorrent/coverage.svg?branch=master
    :target: https://codecov.io/github/arvidn/libtorrent?branch=master&view=all#sort=missing&dir=desc

.. image:: https://www.openhub.net/p/rasterbar-libtorrent/widgets/project_thin_badge.gif
    :target: https://www.openhub.net/p/rasterbar-libtorrent?ref=sample

libtorrent is an open source C++ library implementing the BitTorrent protocol,
along with most popular extensions, making it suitable for real world
deployment. It is configurable to be able to fit both servers and embedded
devices.

The main goals of libtorrent are to be efficient and easy to use.

See `libtorrent.org`__ for more detailed build and usage instructions.

.. __: http://libtorrent.org

To build with boost-build, make sure boost and boost-build is installed and run:

   b2

In the libtorrent root. To build the examples, run ``b2`` in the ``examples``
directory.

See `building.html`__ for more details on how to build and which configuration
options are available. For python bindings, see `the python docs`__.

.. __: docs/building.rst
.. __: docs/python_binding.rst

pull request checklist
......................

When creating a pull request, please consider the following checklist:

* make sure both travis-CI and appveyor builds are green. Note that on gcc and
  clang warnings are treated as errors. Some tests may be flapping, if so,
  please issue a rebuild of the specific build configuration. (I'm working on
  making all tests deterministic)
* If adding a user-facing feature, please add brief entry to ``ChangeLog``
* Add a unit test to confirm the new behavior or feature. Don't forget negative
  tests (i.e. failure cases) and please pay as much care to tests as you would
  production code.
* rebase on top of master periodically
* if your patch is against the current stable release branch, please also
  forward-port the patch to master (at the time of this writing, automatic
  merge in git does not work, possibly because the branch was created in svn)
* if your patch adds a new .cpp file, please make sure it's added to the
  appropriate ``Jamfile``, ``Makefile.am`` and ``CMakeList.txt``. If it's adding
  a header file, make sure it's added to ``include/libtorrent/Makefile.am``.