GithubHelp home page GithubHelp logo

ltullman / ttorrent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from etsy/ttorrent

1.0 2.0 0.0 2.26 MB

Turn's BitTorrent Java library (tracker and client)

Home Page: http://turn.github.com/ttorrent/

License: Apache License 2.0

ttorrent's Introduction

A Java implementation of the BitTorrent protocol
================================================

This is a pure-Java implementation of the BitTorrent protocol, providing a
BitTorrent tracker, a BitTorrent client and the related Torrent metainfo files
creation and parsing capabilities. It is designed to be embedded into larger
applications.

This tool suite was implemented as part of Turn's (http://www.turn.com) release
distribution and deployment system and is used to distribute new build tarballs
to a large number of machines inside a datacenter as efficiently as possible.
At the time this project was started, few Java implementations of the
BitTorrent protocol existed and unfortunately none of them fit our needs:

* Vuze's, which is very hard to extract from their codebase, and thus complex
to re-integrate into another application;
* torrent4j, which is largely incomplete and not usable;
* Snark's, which is old, and unfortunately unstable;
* bitext, which was also unfortunately unstable, and extremely slow.

This implementation aims at providing a down-to-earth, simple to use library.
No fancy protocol extensions are implemented here: just the basics that allows
for the exchange and distribution of files through the BitTorrent protocol.

Although the write performance of the BitTorrent client is currently quite poor
(~10MB/sec/connected peer), it has been measured that the distribution of a
150MB file to thousands of machines across several datacenters took no more
than 30 seconds, with very little network overhead for the initial seeder (only
125% of the original file size uploaded by the initial seeder).


License
-------

This BitTorrent library is distributed under the terms of the Apache Software
License version 2.0. See COPYING file for more details.


Authors
-------

* Maxime Petazzoni <[email protected]> (Platform Engineer at Turn, Inc)


Caveats
-------

* This implementation currently only supports single-file torrents.
* Client write performance is a bit poor, mainly due to a (too?) simple piece
caching algorithm.
* Start of transfer can take a few seconds. This is mostly due to the protocol
itself, but I wonder if something could be done to improve this.

Contributions are welcome in all areas, even more so for these few points
above!

ttorrent's People

Stargazers

Leif avatar

Watchers

Leif avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.