tracker/README.md

52 lines
2.3 KiB
Markdown
Raw Normal View History

2014-07-07 00:08:55 +02:00
# Chihaya [![Build Status](https://api.travis-ci.org/chihaya/chihaya.svg?branch=master)](https://travis-ci.org/chihaya/chihaya)
2013-06-22 01:31:32 +02:00
Chihaya is a high-performance [BitTorrent tracker](http://en.wikipedia.org/wiki/BitTorrent_tracker) written in the Go programming language. It is still heavily under development and the current `master` branch should probably not be used in production (unless you know what you're doing).
2013-08-30 03:48:48 +02:00
Features include:
2013-08-31 21:21:35 +02:00
- Public tracker feature-set with full compatibility with what exists of the BitTorrent spec
- Private tracker feature-set with compatibility for a [Gazelle]-like deployment (WIP)
2014-07-23 21:43:15 +02:00
- Low resource consumption, and fast, asynchronous request processing
- Full IPv6 support, including handling for dual-stacked peers
- Extensive metrics for visibility into the tracker and swarm's performance
- Ability to prioritize peers in local subnets to reduce backbone contention
- Pluggable backend driver that can coordinate with an external database
2013-08-30 04:02:12 +02:00
2013-08-31 21:21:35 +02:00
[gazelle]: https://github.com/whatcd/gazelle
2013-06-22 01:31:32 +02:00
## When would I use Chihaya?
2013-08-29 06:47:37 +02:00
Chihaya is a meant for every kind of BitTorrent tracker deployment. Chihaya has been used to replace instances of [opentracker] and also instances of [ocelot]. Chihaya handles torrent announces and scrapes in memory, but using a backend driver, can also asynchronously provide deltas to maintain a set of persistent data without throttling a database (this most useful for private tracker use-cases).
2013-08-29 06:47:37 +02:00
[opentracker]: http://erdgeist.org/arts/software/opentracker
[ocelot]: https://github.com/WhatCD/Ocelot
## Building & Installing
Chihaya requires Go 1.3, [Godep], and a [Go environment] previously setup.
[Godep]: https://github.com/tools/godep
[Go environment]: https://golang.org/doc/code.html
2013-06-22 01:31:32 +02:00
```sh
$ export GOPATH=$PWD/chihaya
$ git clone github.com/chihaya/chihaya chihaya/src/github.com/chihaya/chihaya
$ godep go install chihaya/src/github.com/chihaya/cmd/chihaya
```
2013-08-23 21:39:42 +02:00
## Testing
Chihaya has end-to-end test coverage for announces in addition to unit tests for isolated components. To run the tests, use:
2014-07-24 05:45:53 +02:00
```sh
$ cd $GOPATH/src/github.com/chihaya/chihaya
$ godep go test -v ./...
2014-07-24 05:45:53 +02:00
```
There is also a set of benchmarks for performance-critical sections of Chihaya. These can be run similarly:
```sh
$ cd $GOPATH/src/github.com/chihaya/chihaya
$ godep go test -v ./... -bench .
```