imdl 0.0.3

📦 A 40' shipping container for the internet
imdl-0.0.3 is not a library.
Visit the last successful build: imdl-0.1.13

intermodal: a 40' shipping container for the Internet

Crate Build Chat

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
:white_check_mark: Supported
:x: Unsupported (links to tracking issue)
:heavy_minus_sign: Not Applicable
BEP Status Title
00 :heavy_minus_sign: Index of BitTorrent Enhancement Proposals
01 :heavy_minus_sign: The BitTorrent Enhancement Proposal Process
02 :heavy_minus_sign: Sample reStructured Text BEP Template
03 :white_check_mark: The BitTorrent Protocol Specification
04 :heavy_minus_sign: Assigned Numbers
05 :white_check_mark: DHT Protocol
06 :heavy_minus_sign: Fast Extension
07 :heavy_minus_sign: IPv6 Tracker Extension
08 :heavy_minus_sign: Tracker Peer Obfuscation
09 :white_check_mark: Extension for Peers to Send Metadata Files
10 :heavy_minus_sign: Extension Protocol
11 :heavy_minus_sign: Peer Exchange (PEX)
12 :white_check_mark: Multitracker Metadata Extension
14 :heavy_minus_sign: Local Service Discovery
15 :heavy_minus_sign: UDP Tracker Protocol for BitTorrent
16 :heavy_minus_sign: Superseeding
17 :x: HTTP Seeding
18 :heavy_minus_sign: Search Engine Specificiation
19 :x: WebSeed - HTTP/FTP Seeding (GetRight style)
20 :heavy_minus_sign: Peer ID Conventions
21 :heavy_minus_sign: Extension for partial seeds
22 :heavy_minus_sign: BitTorrent Local Tracker Discovery Protocol
23 :heavy_minus_sign: Tracker Returns Compact Peer Lists
24 :heavy_minus_sign: Tracker Returns External IP
25 :heavy_minus_sign: An Alternate BitTorrent Cache Discovery Protocol
26 :heavy_minus_sign: Zeroconf Peer Advertising and Discovery
27 :white_check_mark: Private Torrents
28 :heavy_minus_sign: Tracker exchange extension
29 :heavy_minus_sign: uTorrent transport protocol
30 :x: Merkle hash torrent extension
31 :heavy_minus_sign: Failure Retry Extension
32 :heavy_minus_sign: BitTorrent DHT Extensions for IPv6
33 :heavy_minus_sign: DHT Scrapes
34 :heavy_minus_sign: DNS Tracker Preferences
35 :x: Torrent Signing
36 :heavy_minus_sign: Torrent RSS feeds
37 :heavy_minus_sign: Anonymous BitTorrent over proxies
38 :heavy_minus_sign: Finding Local Data Via Torrent File Hints
39 :x: Updating Torrents Via Feed URL
40 :heavy_minus_sign: Canonical Peer Priority
41 :heavy_minus_sign: UDP Tracker Protocol Extensions
42 :heavy_minus_sign: DHT Security extension
43 :heavy_minus_sign: Read-only DHT Nodes
44 :heavy_minus_sign: Storing arbitrary data in the DHT
45 :heavy_minus_sign: Multiple-address operation for the BitTorrent DHT
46 :x: Updating Torrents Via DHT Mutable Items
47 :x: Padding files and extended file attributes
48 :heavy_minus_sign: Tracker Protocol Extension: Scrape
49 :x: Distributed Torrent Feeds
50 :heavy_minus_sign: Publish/Subscribe Protocol
51 :heavy_minus_sign: DHT Infohash Indexing
52 :x: The BitTorrent Protocol Specification v2
53 :x: Magnet URI extension - Select specific file indices for download
54 :heavy_minus_sign: The lt_donthave extension
55 :heavy_minus_sign: 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.