Este repositorio implementa paquetes relacionados con BitTorrent y utilidades de línea de comandos en Go. Se hace hincapié en el uso como biblioteca de otros proyectos. Se ha utilizado las 24 horas del día, los 7 días de la semana en producción por servicios posteriores desde finales de 2014. La implementación se creó específicamente para explorar las capacidades de concurrencia de Go e incluir la capacidad de transmitir datos directamente desde la red BitTorrent. Con este fin, admite búsquedas, lecturas anticipadas y otras funciones que exponen torrents y sus archivos con las distintas interfaces del paquete Go idiomático io
. Esto también se demuestra a través de torrentfs.
Hay soporte para cifrado de protocolo, DHT, PEX, uTP y varias extensiones. Se proporcionan varios servidores de almacenamiento de datos: blob, file, Bolt, mmap y sqlite, por nombrar algunos. Puede escribir el suyo propio para almacenar datos, por ejemplo, en S3 o en una base de datos.
Algunas dependencias de paquetes notables que se pueden utilizar para otros fines incluyen:
Instale el paquete de la biblioteca con go get github.com/anacrolix/torrent
, o los cmds proporcionados con go install github.com/anacrolix/torrent/cmd/...@latest
.
Hay algunos pequeños ejemplos en la documentación del paquete.
Hay varias interfaces web, sitios, clientes de Android, backends de almacenamiento y servicios de soporte entre los proyectos públicos conocidos:
La comunicación sobre el proyecto se realiza principalmente a través de Discusiones y el rastreador de problemas.
Aquí describiré lo que hacen algunos de los paquetes en ./cmd
. Ver instalación para que estén disponibles.
torrent
torrent download
Descarga torrents desde la línea de comandos.
$ 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
Crea un enlace magnético a partir de un archivo torrent. Tenga en cuenta los rastreadores extraídos, el nombre para mostrar y el hash de información.
$ 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
Consulte torrent metainfo --help
para conocer otros comandos relacionados con metainfo.
torrentfs
torrentfs monta un sistema de archivos FUSE en -mountDir
. Los contenidos son los torrents descritos por los archivos torrent y los enlaces magnéticos en -metainfoDir
. Los datos para las solicitudes de lectura se obtienen de la red torrent solo según sea necesario y se almacenan en -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 -