# Tribler¶

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 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


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.