gday 0.2.0

Command line tool to securely send files (without a relay or port forwarding).
gday-0.2.0 is not a library.

Note: this project is still in early-development, so expect breaking changes.

gday

A command line tool for sending files.

asciicast

Installation

Executable

  1. Go to releases and download the correct file for your platform.
  2. Extract it (on Linux, try: tar xf <file>).
  3. Run it: ./<path to executable>/gday

Cargo

If you have cargo, run cargo install gday.

Brew

If you have brew, run brew install manforowicz/tap/gday.

Features

  • File transfer is always direct, without relays. A server is only used at the beginning to help the devices find each other.
  • Doesn't require port forwarding.
  • Files encrypted with streaming ChaCha20Poly1305.
  • Automatically tries both IPv4 and IPv6.
  • Immune to malicious servers trying to impersonate your peer. Uses password authenticated key exchange (SPAKE2) to derive an encryption key from a shared secret.

How it works

Uses authenticated TCP Hole Punching with the help of a server to establish a direct peer-to-peer connection, even between different private networks. Note: This may not work on networks with very restrictive NATs.

Usage

Usage: gday [OPTIONS] <COMMAND>

Commands:
  send     Send files
  receive  Receive files. Input the code your peer told you
  help     Print this message or the help of the given subcommand(s)

Options:
  -s, --server <SERVER>        Use a custom gday server with this domain name
  -p, --port <PORT>            Which server port to connect to
  -u, --unencrypted            Use unencrypted TCP instead of TLS to the custom server
  -v, --verbosity <VERBOSITY>  Verbosity. (trace, debug, info, warn, error) [default: warn]
  -h, --help                   Print help
  -V, --version                Print version

Similar Projects

Open an issue to add more projects to this list.

Related