該儲存庫在 Go 中實作了 BitTorrent 相關的套件和命令列實用程式。重點是用作其他項目的庫。自 2014 年底以來,下游服務一直在生產中 24/7 全天候使用它。為此,它支援搜尋、預讀和其他功能,透過各種 Go 慣用的io
套件介面公開 torrent 及其檔案。這也透過 torrentfs 得到了證明。
支援協定加密、DHT、PEX、uTP 和各種擴充。提供了多種資料儲存後端:blob、file、bolt、mmap 和 sqlite 等。您可以編寫自己的數據來儲存數據,例如在 S3 上或資料庫中。
一些值得注意的可用於其他目的的套件依賴項包括:
使用go get github.com/anacrolix/torrent
安裝庫包,或使用go install github.com/anacrolix/torrent/cmd/...@latest
提供的指令。
包文檔中有一些小範例。
已知的公共專案中有多個 Web 前端、網站、Android 用戶端、儲存後端和支援服務:
有關專案的溝通主要透過討論和問題追蹤器進行。
這裡我將描述./cmd
中的一些包的作用。請參閱安裝以使它們可用。
torrent
torrent download
從命令列下載種子。
$ torrent download 'magnet:?xt=urn:btih:KRWPCX3SJUM4IMM4YF5RPHL6ANPYTQPU'
... lots of jibber jabber ...
downloading "ubuntu-14.04.2-desktop-amd64.iso": 1.0 GB/1.0 GB, 1989/1992 pieces completed (1 partial)
2015/04/01 02:08:20 main.go:137: downloaded ALL the torrents
$ md5sum ubuntu-14.04.2-desktop-amd64.iso
1b305d585b1918f297164add46784116 ubuntu-14.04.2-desktop-amd64.iso
$ echo such amaze
wow
torrent metainfo magnet
從 torrent 檔案建立磁力連結。記下提取的追蹤器、顯示名稱和資訊哈希。
$ torrent metainfo testdata/debian-10.8.0-amd64-netinst.iso.torrent magnet
magnet:?xt=urn:btih:4090c3c2a394a49974dfbbf2ce7ad0db3cdeddd7&dn=debian-10.8.0-amd64-netinst.iso&tr=http%3A%2F%2Fbttracker.debian.org%3A6969%2Fannounce
有關其他元資訊相關命令,請參閱torrent metainfo --help
。
torrentfs
torrentfs 在-mountDir
處掛載 FUSE 檔案系統。內容是由 torrent 檔案和-metainfoDir
處的磁力連結所描述的 torrent。僅根據需要從 torrent 網路獲取讀取請求的數據,並將其儲存在-downloadDir
中。
$ mkdir mnt torrents
$ torrentfs -mountDir=mnt -metainfoDir=torrents &
$ cd torrents
$ wget http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso.torrent
$ cd ..
$ ls mnt
ubuntu-14.04.2-desktop-amd64.iso
$ pv mnt/ubuntu-14.04.2-desktop-amd64.iso | md5sum
996MB 0:04:40 [3.55MB/s] [========================================>] 100%
1b305d585b1918f297164add46784116 -