이 저장소는 Go에서 BitTorrent 관련 패키지와 명령줄 유틸리티를 구현합니다. 다른 프로젝트의 라이브러리로 사용하는 데 중점을 둡니다. 이는 2014년 말부터 다운스트림 서비스의 프로덕션에서 연중무휴 24시간 사용되었습니다. 구현은 Go의 동시성 기능을 탐색하고 BitTorrent 네트워크에서 직접 데이터를 스트리밍하는 기능을 포함하기 위해 특별히 만들어졌습니다. 이를 위해 다양한 Go 관용적 io
패키지 인터페이스를 사용하여 토렌트와 해당 파일을 노출하는 검색, 미리 읽기 및 기타 기능을 지원합니다. 이는 torrentfs를 통해서도 입증됩니다.
프로토콜 암호화, DHT, PEX, uTP 및 다양한 확장이 지원됩니다. blob, file, bolt, mmap, sqlite 등 여러 가지 데이터 저장소 백엔드가 제공됩니다. 예를 들어 S3 또는 데이터베이스에 데이터를 저장하기 위해 직접 작성할 수 있습니다.
다른 목적으로 사용할 수 있는 몇 가지 주목할만한 패키지 종속성은 다음과 같습니다.
go get github.com/anacrolix/torrent
사용하여 라이브러리 패키지를 설치하거나 go install github.com/anacrolix/torrent/cmd/...@latest
사용하여 제공된 cmd를 설치합니다.
패키지 문서에는 몇 가지 작은 예가 있습니다.
알려진 공개 프로젝트에는 여러 웹 프런트엔드, 사이트, 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 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 파일 시스템을 마운트합니다. 내용은 -metainfoDir
에 있는 토렌트 파일과 마그넷 링크에 설명된 토렌트입니다. 읽기 요청에 대한 데이터는 토렌트 네트워크에서 필요할 때만 가져오고 -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 -