Ce référentiel implémente les packages liés à BitTorrent et les utilitaires de ligne de commande dans Go. L'accent est mis sur l'utilisation comme bibliothèque à partir d'autres projets. Il est utilisé 24h/24 et 7j/7 en production par les services en aval depuis fin 2014. L'implémentation a été spécifiquement créée pour explorer les capacités de concurrence de Go et pour inclure la possibilité de diffuser des données directement à partir du réseau BitTorrent. À cette fin, il prend en charge la recherche, les lectures anticipées et d'autres fonctionnalités exposant les torrents et leurs fichiers avec les différentes interfaces du package io
idiomatique Go. Ceci est également démontré via torrentfs.
Le cryptage de protocole, DHT, PEX, uTP et diverses extensions sont pris en charge. Plusieurs backends de stockage de données sont fournis : blob, file, bolt, mmap et sqlite, pour n'en nommer que quelques-uns. Vous pouvez écrire le vôtre pour stocker des données par exemple sur S3 ou dans une base de données.
Certaines dépendances de packages remarquables qui peuvent être utilisées à d’autres fins incluent :
Installez le package de bibliothèque avec go get github.com/anacrolix/torrent
, ou les cmds fournis avec go install github.com/anacrolix/torrent/cmd/...@latest
.
Il y a quelques petits exemples dans la documentation du package.
Il existe plusieurs interfaces Web, sites, clients Android, backends de stockage et services de support parmi les projets publics connus :
La communication sur le projet se fait principalement via les discussions et le suivi des problèmes.
Ici, je vais décrire ce que font certains des packages de ./cmd
. Voir installation pour les rendre disponibles.
torrent
torrent download
Télécharge des torrents à partir de la ligne de commande.
$ 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
Crée un lien magnétique à partir d'un fichier torrent. Notez les trackers extraits, le nom d’affichage et le hachage des informations.
$ 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
Voir torrent metainfo --help
pour d'autres commandes liées aux métainfos.
torrentfs
torrentfs monte un système de fichiers FUSE sur -mountDir
. Le contenu est les torrents décrits par les fichiers torrent et les liens magnétiques sur -metainfoDir
. Les données des demandes de lecture sont récupérées uniquement si nécessaire sur le réseau torrent et stockées dans -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 -