このリポジトリは、BitTorrent 関連のパッケージとコマンドライン ユーティリティを Go に実装します。他のプロジェクトからのライブラリとして使用することに重点が置かれています。この実装は、Go の同時実行機能を調査し、BitTorrent ネットワークから直接データをストリーミングする機能を含めるために特別に作成されました。この目的のために、シーク、先読み、およびさまざまな Go 慣用的なio
パッケージ インターフェイスを使用して torrent とそのファイルを公開するその他の機能をサポートします。これは torrentfs を通じても実証されています。
プロトコル暗号化、DHT、PEX、uTP、およびさまざまな拡張機能がサポートされています。いくつかのデータ ストレージ バックエンドが提供されています。例を挙げると、BLOB、ファイル、ボルト、mmap、sqlite などです。独自のデータを作成して、S3 やデータベースなどにデータを保存できます。
他の目的に使用できる注目すべきパッケージの依存関係には、次のものがあります。
go get github.com/anacrolix/torrent
を使用してライブラリ パッケージをインストールするか、 go install github.com/anacrolix/torrent/cmd/...@latest
を使用して提供された cmd をインストールします。
パッケージのドキュメントには小さな例がいくつかあります。
既知のパブリック プロジェクトには、Web フロントエンド、サイト、Android クライアント、ストレージ バックエンド、およびサポート サービスがいくつかあります。
プロジェクトに関するコミュニケーションは主にディスカッションと問題トラッカーを通じて行われます。
ここでは、 ./cmd
内のいくつかのパッケージが何を行うかを説明します。これらを使用できるようにするには、「インストール」を参照してください。
torrent
torrent download
コマンドラインから torrent をダウンロードします。
$ 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 は、FUSE ファイルシステムを-mountDir
にマウントします。コンテンツは、 -metainfoDir
の torrent ファイルとマグネット リンクで記述された 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 -