2019-05-24 10:25:55 +02:00
# intermodal: a 40' shipping container for the Internet
2020-01-16 08:37:12 +01:00
2020-04-10 03:23:26 +02:00
[![Crate ](https://img.shields.io/crates/v/imdl.svg?logo=rust )](https://crates.io/crates/imdl)
2020-02-18 12:07:38 +01:00
[![Build ](https://github.com/casey/intermodal/workflows/Build/badge.svg )](https://github.com/casey/intermodal/actions)
2020-04-10 03:23:26 +02:00
[![Book ](https://img.shields.io/static/v1?logo=read-the-docs&label=book&message=imdl.io&color=informational )](https://imdl.io/book/)
[![Chat ](https://img.shields.io/discord/679283456261226516.svg?logo=discord&color=7289da )](https://discord.gg/HaaT5Qz)
2020-02-18 11:53:23 +01:00
2020-03-27 22:19:21 +01:00
Intermodal is a user-friendly and featureful command-line BitTorrent metainfo utility. The binary is called `imdl` and runs on Linux, Windows, and macOS.
At the moment, creation, viewing, and verification of `.torrent` files is supported.
2020-03-27 05:54:54 +01:00
For more about the project and its goals, check out [this post ](https://rodarmor.com/blog/intermodal ).
2020-03-14 08:32:13 +01:00
2020-03-28 11:56:08 +01:00
![demonstration animation ](https://raw.githubusercontent.com/casey/intermodal/master/www/demo.gif )
2020-01-21 06:41:39 +01:00
## Manual
- [General ](#general )
2020-01-31 11:58:58 +01:00
- [Installation ](#installation )
- [Supported Operating Systems ](#supported-operating-systems )
2020-04-12 02:20:45 +02:00
- [Packages ](#packages )
2020-01-31 11:58:58 +01:00
- [Pre-built binaries ](#pre-built-binaries )
- [Cargo ](#cargo )
2020-03-28 06:46:41 +01:00
- [Shell Completion Scripts ](#shell-completion-scripts )
2020-01-21 06:41:39 +01:00
- [Semantic Versioning ](#semantic-versioning )
- [Unstable Features ](#unstable-features )
2020-04-04 10:41:58 +02:00
- [Source Signatures ](#source-signatures )
2020-02-04 16:55:50 +01:00
- [Acknowledgments ](#acknowledgments )
2020-01-21 06:41:39 +01:00
## General
2020-01-31 11:58:58 +01:00
### Installation
#### Supported Operating Systems
2020-04-10 05:28:39 +02:00
`imdl` supports Linux, MacOS, and Windows, and should work on other unix OSes.
If it does not, please open an issue!
2020-01-31 11:58:58 +01:00
2020-04-12 02:20:45 +02:00
#### Packages
| Operating System | Package Manager | Package | Command |
|:--------------------------------------------------------------------:|:-----------------------------------:|:-------------------------------------------------------------------------:|---------------------:|
| [Various ](https://forge.rust-lang.org/release/platform-support.html ) | [Cargo ](https://www.rust-lang.org ) | [imdl ](https://crates.io/crates/imdl ) | `cargo install imdl` |
| [Arch Linux ](https://www.archlinux.org ) | [Yay ](https://github.com/Jguer/yay ) | [intermodal ](https://aur.archlinux.org/packages/intermodal )< sup > AUR</ sup > | `yay -S intermodal` |
2020-01-31 11:58:58 +01:00
#### Pre-built binaries
Pre-built binaries for Linux, macOS, and Windows can be found on
[the releases page ](https://github.com/casey/intermodal/releases ).
You can use the following command to download the latest binary for Linux,
2020-04-10 05:28:39 +02:00
MacOS, or Windows, just replace `DEST` with the directory where you'd like to
2020-01-31 11:58:58 +01:00
install the `imdl` binary:
```sh
2020-01-31 13:28:40 +01:00
curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash -s -- --to DEST
2020-01-31 11:58:58 +01:00
```
2020-04-10 05:28:39 +02:00
A good place to install personal binaries is `~/bin` , which `install.sh` uses
when `--to` is not supplied. To create the `~/bin` directory and install `imdl`
there, do:
```sh
curl --proto '=https' --tlsv1.2 -sSf https://imdl.io/install.sh | bash
```
Additionally, you'll have to add `~/bin` to the `PATH` environment variable,
which the system uses to find executables. How to do this depends on the shell.
For `sh` , `bash` , and `zsh` , it should be done in `~/.profile` :
```sh
echo 'export PATH=$HOME/bin:$PATH' >> ~/.profile
```
For `fish` , it should be done in `~/.config/fish/config.fish` :
```fish
echo 'set -gx PATH ~/bin $PATH' >> ~/.config/fish/config.fish
```
2020-01-31 11:58:58 +01:00
#### Cargo
`imdl` is written in [Rust ](https://www.rust-lang.org/ ) and can be built from
source and installed with `cargo install imdl` . To get Rust, use the
[rustup installer ](https://rustup.rs/ ).
2020-03-28 06:46:41 +01:00
### Shell Completion Scripts
Shell completion scripts for Bash, Zsh, Fish, PowerShell, and Elvish are
2020-04-16 00:43:54 +02:00
available in the [completions directory ](./completions ). Please refer to your
2020-03-28 06:46:41 +01:00
shell's documentation for how to install them.
The `imdl` binary can also generate the same completion scripts at runtime,
using the `completions` command:
```sh
$ imdl completions --shell bash > imdl.bash
```
2020-01-21 06:41:39 +01:00
### Semantic Versioning
Intermodal follows [semantic versioning ](https://semver.org/ ).
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
2020-01-30 10:52:07 +01:00
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.
2020-01-21 06:41:39 +01:00
2020-04-04 10:41:58 +02:00
### Source Signatures
All commits to the intermodal master branch signed with Casey Rodarmor's PGP
key with fingerprint `3259DAEDB29636B0E2025A70556186B153EC6FE0` , which can be
found
[on keybase ](https://keybase.io/rodarmor/pgp_keys.asc?fingerprint=3259daedb29636b0e2025a70556186b153ec6fe0 ) and on
2020-04-04 11:33:46 +02:00
[his homepage ](https://rodarmor.com/static/rodarmor.asc ).
2020-04-04 10:41:58 +02:00
2020-02-04 16:55:50 +01:00
## Acknowledgments
The formatting of `imdl torrent show` is entirely copied from
[torf ](https://github.com/rndusr/torf-cli ), an excellent command-line torrent
creator, editor, and viewer.