rwh 0.11.3

Safe filetransfer through magic-wormhole
docs.rs failed to build rwh-0.11.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

version build dependencies docs license downloads

rwh 0.11.3

Rusty Wormhole - Safe filetransfer through magic-wormhole

Install

Install standalone single-binary

wget https://github.com/pepa65/rwh/releases/download/0.11.3/rwh
sudo chown root:root rwh
sudo chmod +x
sudo mv qr /usr/local/bin/

Install with cargo

If not installed yet, install a Rust toolchain, see https://www.rust-lang.org/tools/install

Direct from crates.io

cargo install rwh

Direct from repo

cargo install --git https://github.com/pepa65/rwh

Static build (avoiding GLIBC incompatibilities)

git clone https://github.com/pepa65/rwh
cd rwh
rustup target add x86_64-unknown-linux-musl
cargo rel  # Alias in .cargo/config.toml

The binaries will be in target/x86_64-unknown-linux-musl/release/

Install with cargo-binstall

Even without a full Rust toolchain, rust binaries can be installed with the static binary cargo-binstall:

# Install cargo-binstall for Linux x86_64
# (Other versions are available at https://crates.io/crates/cargo-binstall)
wget github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
tar xf cargo-binstall-x86_64-unknown-linux-musl.tgz
sudo chown root:root cargo-binstall
sudo mv cargo-binstall /usr/local/bin/

Install the binaries for linux-x86_64 (musl): cargo-binstall eqr

The binaries will be installed into ~/.cargo/bin/ which still needs to be added to PATH!

Usage

rwh 0.11.3 - Safe filetransfer through magic-wormhole
Usage: rwh [OPTIONS] <COMMAND>
Commands:
  send       Send a file/folder [alias: s]
  receive    Receive a file/folder [alias: r]
  send-many  Send a file to many recipients
  forward    Forward ports from one machine to another

Options:
  -v, --verbose   Enable logging to stdout, for debugging purposes
      --no-color  Disable color output
  -h, --help      Print help
  -V, --version   Print version

Run a subcommand with `--help` to know how it's used.

Miscellaneous Information

Comparison with the Python implementation

Features that are missing:

  • Text message sending
  • Folder sending (we can send folders, but it will send a tar ball which the other side will have to manually unpack)
  • Tor support

New features that exceed the other implementations:

  • Can do direct connections across the internet (NATs) and firewalls
  • Automatically copies your code to the clipboard
  • Port forwarding in addition to file transfer (experimental)
  • Send a file to multiple people (experimental)
  • Fuzzy wormhole code completion

Developing

If you want to toy with the CLI, cargo run -- --help will get you started. The code sits in ./cli/src. For more instructions see cli/README.md.

If you'd like to use Wormhole in your application, cargo doc --open will tell you how to use it. There aren't any hosted docs at the moment.

If you don't fear touching code and want to contribute, ./src/lib.rs, ./src/transfer.rs and ./src/transit.rs are rather easy to get into. The protocol specification will probably be useful to you.

Applications using Wormhole Rust as library

  • Warp, a GUI client using Gtk
  • Wormhole File Transfer, a Android client using Flutter
  • Wyrmhole, a cross-platform GUI using Tauri
  • rvIRC, a vim-based IRC client with filesharing
  • Feel free to add yours!

License

This work is licensed under the EUPL v1.2 or later. Contact the owner(s) for use in proprietary software.