86aeec3ce9
- Trigger GitHub Actions workflow on release tags - Make build script tolerate not being called in git directory - Omit git hash in created by message if not built in git directory - Test created by message format type: distribution |
||
---|---|---|
.github/workflows | ||
bin | ||
book | ||
docs | ||
src | ||
tmp | ||
.gitattributes | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
CONTRIBUTING | ||
justfile | ||
LICENSE | ||
README.md | ||
rustfmt.toml |
intermodal: a 40' shipping container for the Internet
Intermodal is a user-friendly and featureful command-line BitTorrent metainfo
(.torrent
file) creation, viewing, and verification tool. The Intermodal
binary is called imdl
.
Manual
General
Installation
Supported Operating Systems
imdl
supports both unix and Windows. It is tested on Linux, MacOS, and
Windows, but should work on other unix OSs. If it does not, please open an
issue!
Pre-built binaries
Pre-built binaries for Linux, macOS, and Windows can be found on the releases page.
You can use the following command to download the latest binary for Linux,
MacOS or Windows, just replace DEST
with the directory where you'd like to
install the imdl
binary:
curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash -s -- --to DEST
Cargo
imdl
is written in Rust and can be built from
source and installed with cargo install imdl
. To get Rust, use the
rustup installer.
Semantic Versioning
Intermodal follows semantic versioning.
In particular:
- v0.0.X: Breaking changes may be introduced at any time.
- v0.X.Y: Breaking changes may only be introduced with a minor version number bump.
- vX.Y.Z: Breaking changes may only be introduced with a major version number bump
Unstable Features
To avoid premature stabilization and excessive version churn, unstable features
are unavailable unless the --unstable
/ -u
flag is passed, for example
imdl --unstable torrent create .
. Unstable features may be changed or removed
at any time.
Bittorrent
BEP Support
Symbol | Meaning |
---|---|
✅ | Supported |
❌ | Unsupported (links to tracking issue) |
➖ | Not Applicable |
BEP | Status | Title |
---|---|---|
00 | ➖ | Index of BitTorrent Enhancement Proposals |
01 | ➖ | The BitTorrent Enhancement Proposal Process |
02 | ➖ | Sample reStructured Text BEP Template |
03 | ✅ | The BitTorrent Protocol Specification |
04 | ➖ | Assigned Numbers |
05 | ✅ | DHT Protocol |
06 | ➖ | Fast Extension |
07 | ➖ | IPv6 Tracker Extension |
08 | ➖ | Tracker Peer Obfuscation |
09 | ✅ | Extension for Peers to Send Metadata Files |
10 | ➖ | Extension Protocol |
11 | ➖ | Peer Exchange (PEX) |
12 | ✅ | Multitracker Metadata Extension |
14 | ➖ | Local Service Discovery |
15 | ➖ | UDP Tracker Protocol for BitTorrent |
16 | ➖ | Superseeding |
17 | ❌ | HTTP Seeding |
18 | ➖ | Search Engine Specificiation |
19 | ❌ | WebSeed - HTTP/FTP Seeding (GetRight style) |
20 | ➖ | Peer ID Conventions |
21 | ➖ | Extension for partial seeds |
22 | ➖ | BitTorrent Local Tracker Discovery Protocol |
23 | ➖ | Tracker Returns Compact Peer Lists |
24 | ➖ | Tracker Returns External IP |
25 | ➖ | An Alternate BitTorrent Cache Discovery Protocol |
26 | ➖ | Zeroconf Peer Advertising and Discovery |
27 | ✅ | Private Torrents |
28 | ➖ | Tracker exchange extension |
29 | ➖ | uTorrent transport protocol |
30 | ❌ | Merkle hash torrent extension |
31 | ➖ | Failure Retry Extension |
32 | ➖ | BitTorrent DHT Extensions for IPv6 |
33 | ➖ | DHT Scrapes |
34 | ➖ | DNS Tracker Preferences |
35 | ❌ | Torrent Signing |
36 | ➖ | Torrent RSS feeds |
37 | ➖ | Anonymous BitTorrent over proxies |
38 | ➖ | Finding Local Data Via Torrent File Hints |
39 | ❌ | Updating Torrents Via Feed URL |
40 | ➖ | Canonical Peer Priority |
41 | ➖ | UDP Tracker Protocol Extensions |
42 | ➖ | DHT Security extension |
43 | ➖ | Read-only DHT Nodes |
44 | ➖ | Storing arbitrary data in the DHT |
45 | ➖ | Multiple-address operation for the BitTorrent DHT |
46 | ❌ | Updating Torrents Via DHT Mutable Items |
47 | ❌ | Padding files and extended file attributes |
48 | ➖ | Tracker Protocol Extension: Scrape |
49 | ❌ | Distributed Torrent Feeds |
50 | ➖ | Publish/Subscribe Protocol |
51 | ➖ | DHT Infohash Indexing |
52 | ❌ | The BitTorrent Protocol Specification v2 |
53 | ❌ | Magnet URI extension - Select specific file indices for download |
54 | ➖ | The lt_donthave extension |
55 | ➖ | Holepunch extension |
References
Alternatives & Prior Art
Name | UI | Language | Notes |
---|---|---|---|
torf-cli | CLI | Python | Highly recommended utility for creating torrents and magnet links, as well as displaying information about and editing existing torrents. |
mktorrent | CLI | C | Popular but unmaintained torrent file creator. |
pmktorrent | CLI | C | Maintained fork of mktorrent. |
mktorrent | Library | Ruby | Library for creating torrent files. |
py3createtorrent | CLI | Python | Torrent file creator. |
create-torrent | Library & CLI | JavaScript | Javascript library and CLI for creating torrents. |
whatmp3 | CLI | Python | Torrent file creator that automatically transcodes FLAC files. |
torrent-file-editor | GUI | C++ | Graphical torrent file editor. |
torrent2magnet | CLI | Python | Creates magnet links from torrent files. |
h2torrent | CLI | Python | Creates .torrent files from an infohash or magnet URI. |
dottorrent | Library | Python | Library for creating torrent files |
dottorrent-cli | CLI | Python | Torrent file creator. |
torrent-creator | Web page | Typescript | Single-page web app torrent file creator. |
pyrocore | CLI | PYthon | Utilities for creating, modifying, and displaying torrent files. |
BitTorrent
URL | Description |
---|---|
https://github.com/bittorrent/bittorrent.org | GitHub repository hosting protocol development discussion and contents of bittorrent.org. |
https://www.bittorrent.org | Official web site site hosting BEPs and other information about the protocol. |
https://wiki.theory.org/index.php/Main_Page | Wiki with lots of information about all aspects of the BitTorrent protocol and implementations. |
https://archive.org/details/2014_torrent_archive_organized) | Massive 158 GiB archive containing 5.5 million torrents, assembled in 2014. |
https://github.com/internetarchive/dweb-transport | Github repository hosting The Internet Archive's distributed web and BitTorrent-related software. |
Acknowledgments
The formatting of imdl torrent show
is entirely copied from
torf, an excellent command-line torrent
creator, editor, and viewer.