A collection of packages that can support the building of applications using BitTorrent technologies.
This repository is a fork of GGist's project: bip-rs.
In this fork we have:
- Reorganized the crate collection into a cargo workspace packages. (#6)
- Switched to relative dependencies between packages. (#6)
- Modernized the code to compile with the current version of rust. (#6, #7)
- Implemented continuous integration using github workflows. (#8)
- Update some of the project dependencies. (#9, #17, #26, #27)
- Preformed a general cleanup of the codebase. (#10, #16, #18, #29, #31)
- Updated all dependencies to modern versions. ( #19, #20, #21, #22, #23, #25)
- Removed the
utrackerpackage (superseded by torrust-tracker for UDP tracker support). (#53, #70)
The future goals are:
- Publish updated versions of the crates. (#37)
- Increase coverage of unit tests. (#38)
- Overhaul the old
mioarchitecture in thedhtpackage. Making better use of Tokio. (#54)
We would like to make a special thanks to all the developers who had contributed to and created this great project.
We have not published any crates from this repository yet. Before publishing, we need to complete the ongoing refactoring work and settle on a crate naming convention (see #64). The leading candidates for the prefix are
torrust-(e.g.torrust-bencode) andtorrust-bittorrent-(e.g.torrust-bittorrent-bencode). See #37 for the publishing milestone.
The current (working) crate names, subject to renaming before publication:
| Crate | Description |
|---|---|
bencode |
Parsing and converting bencoded data |
dht |
Bittorrent Mainline Distributed Hash Table |
disk |
FileSystem interface for managing torrent pieces on disk |
handshake |
Trait and implementation for the standard BitTorrent handshake |
magnet |
Parsing and constructing magnet links |
metainfo |
Parsing and building bittorrent metainfo (.torrent) files |
peer |
Communication with bittorrent peers via the peer wire protocol |
select |
Piece selection algorithm |
util |
Shared utilities used across packages |
Original crates published by GGist
Note: These crates have not been updated since mid-2018.
The original crates were published under the bip_ prefix, short for BitTorrent Infrastructure Project (the former name of this project).
Please note: The license of this repository has been changed!
Apache-2.0and/orMIT→ (only)Apache-2.0If this is a particular issue for your project, please open an issue.
The primary motivation that it has some software-patent protections.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 License, shall licensed as above, without any additional terms or conditions.