config | ||
example | ||
server | ||
storage | ||
.travis.yml | ||
AUTHORS | ||
CONTRIBUTORS | ||
LICENSE | ||
main.go | ||
README.md |
chihaya is a high-performance BitTorrent tracker written in the Go programming language. It isn't quite ready for prime-time just yet, but these are the features that it targets:
- Asynchronous and concurrent (multiplexes requests over all available threads)
- Low processing and memory footprint
- IPv6 support
- Storage interface that can be easily adapted to use any data store
- Scaling properties that directly correlate with the chosen data store's scaling properties
##installing
$ go install github.com/pushrax/chihaya
##configuring
Configuration is done in a JSON formatted file specified with the -config
flag. One can start with example/config.json
as a base.
##implementing a new storage backend
The storage
package works similar to the standard library's database/sql
package. To write a new storage backend, create a new Go package that has an implementation of both the Storage
and the StorageDriver
interfaces. Within your package define an init()
function that calls storage.Register(driverName, yourStorageDriver)
. After that, all you have to do is remember to add import _ path/to/your/library
to the top of main.go
and now config files will recognize your driver by name.
##contributing
If you're interested in contributing, please contact us in #chihaya on freenode(webchat) or post to the issue tracker. Please don't offer a pull request with no prior communication attempts (unless it's small), as it will most likely lead to confusion and time wasted for everyone. And remember: good gophers always use gofmt!