/tribler

Privacy enhanced BitTorrent client with P2P content discovery

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

Tribler

Build status on Jenkins Contributors Pull Requests Issues Downloads(7.0.2) Downloads(7.1.0) DOI number openhub

Towards making Bittorrent anonymous and impossible to shut down.

Developers usually hang out in the official IRC channel #tribler @ FreeNode (click here for direct a webchat window)

We use our own dedicated Tor-like network for anonymous torrent downloading. We implemented and enhanced the Tor protocol specifications plus merged them with Bittorrent streaming. More info: https://github.com/Tribler/tribler/wiki Tribler includes our own Tor-like onion routing network with hidden services based seeding and end-to-end encryption, detailed specs: https://github.com/Tribler/tribler/wiki/Anonymous-Downloading-and-Streaming-specifications

The aim of Tribler is giving anonymous access to online (streaming) videos. We are trying to make privacy, strong cryptography and authentication the Internet norm.

Tribler currently offers a Youtube-style service. For instance, Bittorrent-compatible streaming, fast search, thumbnail previews and comments. For the past 11 years we have been building a very robust Peer-to-Peer system. Today Tribler is robust: "the only way to take Tribler down is to take The Internet down" (but a single software bug could end everything).

We make use of submodules, so remember using the --recursive argument when cloning this repo.

Obtaining the latest release

Just click here and download the latest package for your OS.

Obtaining support

If you found a bug or have a feature request, please make sure you read our contributing page and then open an issue. We will have a look at it ASAP.

Contributing

Contributions are very welcome! If you are interested in contributing code or otherwise, please have a look at our contributing page. Have a look at the issue tracker if you are looking for inspiration :).

Setting up your development environment

We support development on Linux, macOS and Windows. We have written documentation that guides you through installing the required packages when setting up a Tribler development environment. See our Linux development guide for the guide on setting up a development environment on Linux distributions. See our Windows development guide for setting everything up on Windows. See our OS X development guide for the guide to setup the development environment on macOS.

Running Tribler from the repository

First clone the repository:

git clone --recursive git@github.com:Tribler/tribler.git

or, if you haven't added your ssh key to your github account:

git clone --recursive https://github.com/Tribler/tribler.git

Second, install the dependencies.

Done! Now you can run tribler by executing the tribler.sh script on the root of the repository:

./tribler.sh

On Windows, you can use the following command to run Tribler:

python run_tribler.py

Packaging Tribler

We have written guides on how to package Tribler for distribution on various systems. Please take a look here.

Submodule notes

  • As updated submodules are in detached head state, remember to check out a branch before committing changes on them.
  • If you forgot to check out a branch before doing a commit, you should get a warning telling you about it. To get the commit to a branch just check out the branch and do a git cherry-pick of the commit.
  • Take care of not accidentally committing a submodule revision change with git commit -a.
  • Do not commit a submodule update without running all the tests first and making sure the new code is not breaking Tribler.