torrent
Version, currently master branch1 version
- master branchlatestOct 23, 2017
github.com/Papierkorb/torrent
A BitTorrent library in pure Crystal
40 stars
0 dependents
License: MPL2
Installation
# Add this to your shard.yml
dependencies:
torrent:
github: Papierkorb/torrent
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
- no constraint declared
- License
- MPL2
- Author
- Stefan Merettig <stefan-merettig@nuriaproject.org>
Dependencies
Runtime Dependencies
- cute*github: Papierkorb/cute
Development Dependencies
- spec2~> 0.11.0github: waterlink/spec2.crdev
README
# torrent.cr [](https://travis-ci.org/Papierkorb/torrent)
A BitTorrent client library written in pure Crystal.
Do note that this shard is currently in **BETA**.
## Installation
Add this to your application's `shard.yml`:
```yaml
dependencies:
torrent:
github: Papierkorb/torrent
```
## Usage
Please see `bin/` for example applications.
## What's missing?
* Improve architecture
* Improve performance (Seeding is fine, leeching is expensive)
* Smarter leech and seed strategies
* Tons of other things
* The planned BEPs
* More tests (Figure out how to best test networking code)
## Implemented BEPs
The index of all BEPs can be found at http://www.bittorrent.org/beps/bep_0000.html
* BEP-0003: The BitTorrent Protocol Specification
* BEP-0005: DHT Protocol (*Experimental*)
* BEP-0006: Fast Extension
* BEP-0010: Extension Protocol
* BEP-0011: Peer Exchange (PEX)
* BEP-0015: UDP Tracker Protocol for BitTorrent (*Except for scraping*)
* BEP-0020: Peer ID Conventions
* BEP-0023: Tracker Returns Compact Peer Lists
* BEP-0027: Private Torrents
* BEP-0041: UDP Tracker Protocol Extensions
* BEP-0048: Tracker Protocol Extension: Scrape
### Planned
* BEP-0009: Extension for Peers to Send Metadata Files
* BEP-0040: Canonical Peer Priority
*All entries are in ascending order of their BEP number*
## Contributing
1. Fork it ( https://github.com/Papierkorb/torrent.cr/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Write tests
4. Commit your changes (git commit -am 'Add some feature')
5. Push to the branch (git push origin my-new-feature)
6. Create a new Pull Request
## Contributors
- [Papierkorb](https://github.com/Papierkorb) Stefan Merettig - creator, maintainer
## Disclaimer
The authors of this library are in no way responsible for any copyright
infiringements caused by using this library or software using this library.
There are many legitimate use-cases for torrents outside of piracy. This library
was written with the intention to be used for such legal purposes.
## License
This library is licensed under the Mozilla Public License 2.0 ("MPL-2").
For a copy of the full license text see the included `LICENSE` file.
For a legally non-binding explanation visit:
[tl;drLegal](https://tldrlegal.com/license/mozilla-public-license-2.0-%28mpl-2%29)
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Oct 23, 2017
- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/Papierkorb/torrent
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 1