Skip to content
GitHub no longer supports this web browser. Learn more about the browsers we support.
🌧 BitTorrent client and library in Go
Go
Branch: master
Clone or download
Latest commit 0fd3893 Jan 31, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
internal Revert "Restore console.New and use SetColumns instead" Jan 26, 2020
rainrpc add clean-database method to session Oct 10, 2019
torrent
.golangci.yml update linter Oct 13, 2019
.goreleaser.yml remove zsh auto completion Sep 25, 2019
.travis.yml update linter Oct 13, 2019
LICENSE add license May 22, 2014
README.md update readme Jan 31, 2020
go.mod
go.sum remove graphite dependency Dec 16, 2019
main.go Revert "Restore console.New and use SetColumns instead" Jan 26, 2020

README.md

rain

BitTorrent client and library in Go. Running in production at put.io.

Build Status GoDoc GitHub Release Go Report Card

Features

Screenshot

Rain Screenshot

Installing

If you are on MacOS you can install from brew:

brew tap cenkalti/rain
brew install rain

Otherwise, get the latest binary from releases page.

Usage

Rain is distributed as single binary file. The main use case is running rain server command and operating the server with rain client <subcommand> commands. Server consists of a BitTorrent client and a RPC server. rain client is used to give commands to the server. There is also rain client console command which opens up a text based UI that you can view and manage the torrents on the server. Run rain help to see other commands.

Difference from other clients

Rain is the main BitTorrent client used at put.io. It is designed to handle hundreds of torrents while using low system resources. The main difference from other clients is that Rain uses a separate peer port for each torrent. This allows Rain to download same torrent for multiple accounts in same private tracker and keep reporting their ratio correctly.

Missing features

You can’t perform that action at this time.