# torrent
[![Join the chat at https://gitter.im/anacrolix/torrent](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/anacrolix/torrent?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![GoDoc](https://godoc.org/github.com/anacrolix/torrent?status.svg)](https://godoc.org/github.com/anacrolix/torrent)
[![CircleCI](https://circleci.com/gh/anacrolix/torrent.svg?style=shield)](https://circleci.com/gh/anacrolix/torrent)
[![Astronomer Rating](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fastronomer.ullaakut.eu%2Fshields%3Fowner%3Danacrolix%26name%3Dtorrent)](https://github.com/ullaakut/astronomer)
[![GitHub Release](https://img.shields.io/github/release/anacrolix/torrent.svg)](https://github.com/anacrolix/torrent/releases)
This repository implements BitTorrent-related packages and command-line utilities in Go. The emphasis is on use as a library from other projects. It's been used 24/7 in production by downstream services since late 2014. The implementation was specifically created to explore Go's concurrency capabilities, and to include the ability to stream data directly from the BitTorrent network. To this end it [supports seeking, readaheads and other features](https://godoc.org/github.com/anacrolix/torrent#Reader) exposing torrents and their files with the various Go idiomatic `io` package interfaces. This is also demonstrated through [torrentfs](#torrentfs).
There is [support for protocol encryption, DHT, PEX, uTP, and various extensions](https://godoc.org/github.com/anacrolix/torrent). There are [several data storage backends provided](https://godoc.org/github.com/anacrolix/torrent/storage): blob, file, bolt, and mmap, to name a few. You can [write your own](https://godoc.org/github.com/anacrolix/torrent/storage#ClientImpl) to store data for example on S3, or in a database.
Some noteworthy package dependencies that can be used for other purposes include:
* [go-libutp](https://github.com/anacrolix/go-libutp)
* [dht](https://github.com/anacrolix/dht)
* [bencode](https://godoc.org/github.com/anacrolix/torrent/bencode)
* [tracker](https://godoc.org/github.com/anacrolix/torrent/tracker)
## Installation
Install the library package with `go get github.com/anacrolix/torrent`, or the provided cmds with `go get github.com/anacrolix/torrent/cmd/...`.
## Library examples
There are some small [examples](https://godoc.org/github.com/anacrolix/torrent#pkg-examples) in the package documentation.
## Downstream projects
There are several web-frontends and Android clients among the known public projects:
* [Torrent.Express](https://torrent.express/)
* [Confluence](https://github.com/anacrolix/confluence)
* [Trickl](https://github.com/arranlomas/Trickl)
* [Elementum](http://elementum.surge.sh/)
* [goTorrent](https://github.com/deranjer/goTorrent)
* [Go Peerflix](https://github.com/Sioro-Neoku/go-peerflix)
* [Cloud Torrent](https://github.com/jpillora/cloud-torrent)
* [Android Torrent Client](https://gitlab.com/axet/android-torrent-client)
* [libtorrent](https://gitlab.com/axet/libtorrent)
* [Remote-Torrent](https://github.com/BruceWangNo1/remote-torrent)
* [ANT-Downloader](https://github.com/anatasluo/ant)
## Help
Communication about the project is primarily through [Gitter](https://gitter.im/anacrolix/torrent) and the [issue tracker](https://github.com/anacrolix/torrent/issues).
## Command packages
Here I'll describe what some of the packages in `./cmd` do.
Note that the [`godo`](https://github.com/anacrolix/godo) command which is invoked in the following examples builds and executes a Go import path, like `go run`. It's easier to use this convention than to spell out the install/invoke cycle for every single example.
### torrent
Downloads torrents from the command-line. This first example does not use `godo`.
$ go get github.com/anacrolix/torrent/cmd/torrent
# Now 'torrent' should be in $GOPATH/bin, which should be in $PATH.
$ torrent 'magnet:?xt=urn:btih:KRWPCX3SJUM4IMM4YF5RPHL6ANPYTQPU'
ubuntu-14.04.2-desktop-amd64.iso [===================================================================>] 99% downloading (1.0 GB/1.0 GB)
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
### torrentfs
torrentfs mounts a FUSE filesystem at `-mountDir`. The contents are the torrents described by the torrent files and magnet links at `-metainfoDir`. Data for read requests is fetched only as required from the torrent network, and stored at `-downloadDir`.
$ mkdir mnt torrents
$ godo github.com/anacrolix/torrent/cmd/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 -
### torrent-magnet
Creates a magnet link from a torrent file. Note the extracted trackers, display name, and info hash.
$ godo github.com/anacrolix/torrent/cmd/torrent-magnet < ubuntu-14.04.2-desktop-amd64.iso.torrent
magnet:?xt=urn:btih:546cf15f724d19c4319cc17b179d7e035f89c1f4&dn=ubuntu-14.04.2-desktop-amd64.iso&tr=http%3A%2F%2Ftorrent.ubuntu.com%3A6969%2Fannounce&tr=http%3A%2F%2Fipv6.torrent.ubuntu.com%3A6969%2Fannounce
没有合适的资源?快使用搜索试试~ 我知道了~
开源项目-anacrolix-torrent.zip
共179个文件
go:154个
torrent:12个
md:2个
需积分: 15 0 下载量 35 浏览量
2019-10-12
05:01:56
上传
评论
收藏 630KB ZIP 举报
温馨提示
开源项目-anacrolix-torrent.zip,Full-featured BitTorrent client package and utilities
资源推荐
资源详情
资源评论
收起资源包目录
开源项目-anacrolix-torrent.zip (179个子文件)
.gitignore 17B
torrent.go 43KB
connection.go 41KB
client.go 35KB
client_test.go 31KB
decode.go 13KB
mse.go 12KB
config.go 7KB
udp.go 6KB
reader.go 6KB
main.go 6KB
t.go 6KB
mse_test.go 6KB
torrent_test.go 6KB
torrentfs_test.go 6KB
piece.go 6KB
file.go 5KB
udp_test.go 5KB
encode.go 5KB
decode_test.go 5KB
http.go 4KB
main.go 4KB
torrentfs.go 4KB
iplist.go 4KB
socket.go 4KB
api.go 4KB
dirwatch.go 4KB
info.go 4KB
metainfo_test.go 4KB
tracker_scraper.go 4KB
connection_test.go 3KB
mmap.go 3KB
main.go 3KB
misc.go 3KB
handshake.go 3KB
protocol_test.go 3KB
packed.go 3KB
magnet_test.go 3KB
file.go 3KB
conn_stats.go 3KB
iplist_test.go 3KB
decoder.go 3KB
magnet.go 2KB
msg.go 2KB
server.go 2KB
rlreader_test.go 2KB
metainfo.go 2KB
network_test.go 2KB
tracker.go 2KB
main.go 2KB
nodes_test.go 2KB
main.go 2KB
encode_test.go 2KB
bolt_piece.go 2KB
global.go 2KB
boltPieceCompletion.go 2KB
bep40.go 2KB
main.go 2KB
decoder_test.go 2KB
both_test.go 2KB
wrappers.go 2KB
packed_test.go 2KB
piece_resource.go 2KB
main.go 2KB
main.go 1KB
handshake.go 1KB
mmap_span.go 1KB
file_handle.go 1KB
issue95_test.go 1KB
sqlitePieceCompletion.go 1KB
http_test.go 1KB
cidr_test.go 1KB
main.go 1KB
worst_conns.go 1KB
bad_storage.go 1KB
spec.go 1KB
prioritized_peers_test.go 1KB
file_misc_test.go 1KB
spec.go 1KB
boltdb.go 1KB
greeting.go 1KB
file_piece.go 1KB
misc_test.go 1KB
portfwd.go 1KB
prioritized_peers.go 1KB
logonce.go 1KB
ratelimitreader.go 1KB
extended.go 1KB
issue96_test.go 988B
protocol.go 963B
doc.go 957B
interface.go 949B
networks.go 935B
status_writer.go 899B
hash.go 894B
issue211_test.go 877B
bench_test.go 870B
file_test.go 868B
messagetype_string.go 846B
bep40_test.go 813B
共 179 条
- 1
- 2
资源评论
weixin_38744153
- 粉丝: 346
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 端午节相关庆祝代码.docx
- 端午节相关庆祝代码.docx
- MixedRealityFeatureTool:MRTK 混合现实功能工具
- 618节日相关的数据分析.docx
- 618节日相关的数据分析.docx
- FileZilla Server cn 0.9.60.2
- ·····C语言使用到的文件
- procedural-mathematical-knowledge-and-use-of-technology-by-senior-high-school-students-12712.pdf
- Linux Qt5.13.2 编译QWebEngine源码支持音视频<aarch64>
- vue3学习,基础知识
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功