Securely & quickly transport your files.
The client binary can be installed via Cargo:
cargo install portal-client
On the first run, a configuration file will be created in:
Platform | Value | Example |
---|---|---|
Linux | $XDG_CONFIG_HOME or $HOME /.config |
/home/alice/.config/portal |
macOS | $HOME /Library/Application Support |
/Users/Alice/Library/Application Support/portal |
Windows | {FOLDERID_RoamingAppData} |
C:\Users\Alice\AppData\Roaming\portal |
Note: The default relay is portal-relay.landhb.dev
. Your peer must connect to the same portal-relay as you. You can also host your own relay and change the value to any domain/IP address in your config.
To send a file:
portal send /path/to/file
To receive a file:
portal recv
If you wish to run your own relay, you can install the binary on a server with:
cargo install portal-relay
Note: An example service file is included in the relay/
directory.
The repo is a cargo workspace with the following directory structure:
lib/ # implementation of the protocol
relay/ # relay server source
client/ # client source
You can run the binaries individually with:
# window 1
cargo run --bin portal-relay
# window 2
cargo run --bin portal -- recv
# window 3
cargo run --bin portal -- send [FILE]
This tool was a quick early pandemic project to learn rust, and has similar ideas/functionality to Wormhole written by Brian Warner, he actually also contributed a large amount to the RustCrypto project's SPAKE2 implementation that Portal uses.