Repositori ini mengimplementasikan paket terkait BitTorrent dan utilitas baris perintah di Go. Penekanannya adalah pada penggunaan sebagai perpustakaan dari proyek lain. Ini telah digunakan 24/7 dalam produksi oleh layanan hilir sejak akhir tahun 2014. Implementasinya secara khusus dibuat untuk mengeksplorasi kemampuan konkurensi Go, dan untuk menyertakan kemampuan untuk melakukan streaming data langsung dari jaringan BitTorrent. Untuk tujuan ini, ia mendukung pencarian, readahead dan fitur-fitur lain yang mengekspos torrent dan file-file mereka dengan berbagai antarmuka paket io
idiomatik Go. Hal ini juga ditunjukkan melalui torrentfs.
Ada dukungan untuk enkripsi protokol, DHT, PEX, uTP, dan berbagai ekstensi. Ada beberapa backend penyimpanan data yang disediakan: blob, file, bolt, mmap, dan sqlite, dan masih banyak lagi. Anda bisa menulis sendiri untuk menyimpan data misalnya di S3, atau di database.
Beberapa dependensi paket penting yang dapat digunakan untuk tujuan lain meliputi:
Instal paket perpustakaan dengan go get github.com/anacrolix/torrent
, atau cmds yang disediakan dengan go install github.com/anacrolix/torrent/cmd/...@latest
.
Ada beberapa contoh kecil dalam dokumentasi paket.
Ada beberapa antarmuka web, situs, klien Android, backend penyimpanan, dan layanan pendukung di antara proyek publik yang dikenal:
Komunikasi mengenai proyek ini terutama dilakukan melalui Diskusi dan pelacak isu.
Di sini saya akan menjelaskan apa yang dilakukan beberapa paket di ./cmd
. Lihat instalasi untuk membuatnya tersedia.
torrent
torrent download
Mengunduh torrent dari baris perintah.
$ 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
Membuat tautan magnet dari file torrent. Catat pelacak yang diekstraksi, nama tampilan, dan hash info.
$ 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
Lihat torrent metainfo --help
untuk perintah terkait metainfo lainnya.
torrentfs
torrentfs memasang sistem file FUSE di -mountDir
. Isinya adalah torrent yang dijelaskan oleh file torrent dan tautan magnet di -metainfoDir
. Data untuk permintaan baca diambil hanya jika diperlukan dari jaringan torrent, dan disimpan di -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 -