2023-04-01 21:07:18 +08:00
# BT - Another Implementation For Golang [](https://github.com/xgfone/go-bt/actions/workflows/go.yml) [](https://pkg.go.dev/github.com/xgfone/go-bt) [](https://raw.githubusercontent.com/xgfone/go-bt/master/LICENSE)
2020-06-07 13:43:15 +08:00
A pure golang implementation of [BitTorrent ](http://bittorrent.org/beps/bep_0000.html ) library, which is inspired by [dht ](https://github.com/shiyanhui/dht ) and [torrent ](https://github.com/anacrolix/torrent ).
## Install
2023-03-04 21:30:51 +08:00
2020-06-07 13:43:15 +08:00
```shell
2023-04-01 21:07:18 +08:00
$ go get -u github.com/xgfone/go-bt
2020-06-07 13:43:15 +08:00
```
2020-06-19 20:19:43 +08:00
## Features
2023-04-01 21:10:23 +08:00
- Support `Go1.11+` .
2020-06-19 20:19:43 +08:00
- Support IPv4/IPv6.
- Multi-BEPs implementation.
- Pure Go implementation without `CGO` .
- Only library without any denpendencies. For the command tools, see [bttools ](https://github.com/xgfone/bttools ).
2020-06-07 13:43:15 +08:00
## The Implemented Specifications
2023-03-04 21:30:51 +08:00
2020-06-07 13:43:15 +08:00
- [x] [**BEP 03:** The BitTorrent Protocol Specification ](http://bittorrent.org/beps/bep_0003.html )
- [x] [**BEP 05:** DHT Protocol ](http://bittorrent.org/beps/bep_0005.html )
- [x] [**BEP 06:** Fast Extension ](http://bittorrent.org/beps/bep_0006.html )
- [x] [**BEP 07:** IPv6 Tracker Extension ](http://bittorrent.org/beps/bep_0007.html )
- [x] [**BEP 09:** Extension for Peers to Send Metadata Files ](http://bittorrent.org/beps/bep_0009.html )
- [x] [**BEP 10:** Extension Protocol ](http://bittorrent.org/beps/bep_0010.html )
- [ ] [**BEP 11:** Peer Exchange (PEX) ](http://bittorrent.org/beps/bep_0011.html )
- [x] [**BEP 12:** Multitracker Metadata Extension ](http://bittorrent.org/beps/bep_0012.html )
- [x] [**BEP 15:** UDP Tracker Protocol for BitTorrent ](http://bittorrent.org/beps/bep_0015.html )
- [x] [**BEP 19:** WebSeed - HTTP/FTP Seeding (GetRight style) ](http://bittorrent.org/beps/bep_0019.html ) (Only `url-list` in metainfo)
- [x] [**BEP 23:** Tracker Returns Compact Peer Lists ](http://bittorrent.org/beps/bep_0023.html )
- [x] [**BEP 32:** IPv6 extension for DHT ](http://bittorrent.org/beps/bep_0032.html )
- [ ] [**BEP 33:** DHT scrape ](http://bittorrent.org/beps/bep_0033.html )
- [x] [**BEP 41:** UDP Tracker Protocol Extensions ](http://bittorrent.org/beps/bep_0041.html )
- [x] [**BEP 43:** Read-only DHT Nodes ](http://bittorrent.org/beps/bep_0043.html )
- [ ] [**BEP 44:** Storing arbitrary data in the DHT ](http://bittorrent.org/beps/bep_0044.html )
- [x] [**BEP 48:** Tracker Protocol Extension: Scrape ](http://bittorrent.org/beps/bep_0048.html )
2020-06-19 20:19:43 +08:00
## Example
2023-04-01 21:07:18 +08:00
See [godoc ](https://pkg.go.dev/github.com/xgfone/go-bt ) or [bttools ](https://github.com/xgfone/bttools ).