gday

Crates.iogday
lib.rsgday
version0.3.0
sourcesrc
created_at2024-06-07 23:13:55.22987
updated_at2024-12-02 02:33:11.568981
descriptionCommand line tool to securely send files (without a relay or port forwarding).
homepagehttps://github.com/manforowicz/gday/tree/main/gday
repositoryhttps://github.com/manforowicz/gday/
max_upload_size
id1265310
size62,748
Marcin Anforowicz (manforowicz)

documentation

README

gday

Crates.io Version

Command line tool to securely send files (without a relay or port forwarding).

peer_1: gday send file.mp4 folder
Tell your mate to run "gday get 1.n5xn8.wvqsf".
peer_2: gday get 1.n5xn8.wvqsf
Transfer complete.

asciicast

Installation

To run the executable directly:

  1. Download an executable from releases.
  2. Extract it (on Linux: tar xf <file>).
  3. Run it: ./gday

To install with cargo:

cargo install gday

To install with brew:

brew install manforowicz/tap/gday

Features

  • No limit on the size of files and folders sent.

  • Files are sent directly, without relay servers. A server is only used to exchange socket addresses at the beginning.

  • Automatically resumes interrupted transfers. Just gday send the same files, and partial downloads will be detected and resumed.

  • Doesn't require port forwarding. Instead, uses TCP Hole Punching to traverse NATs. This may not work on very restrictive NATs. If that happens, enable IPv6 or move to a different network.

  • If a contact exchange server is down, just uses a different one from the default list. Or specify your own with --server.

  • Server connection encrypted with TLS and file transfer end-to-end encrypted with ChaCha20Poly1305.

  • Automatically tries both IPv4 and IPv6.

  • Resistant to malicious servers impersonating your peer. Uses SPAKE2 to derive an encryption key from a shared secret.

  • No unsafe Rust in this repository.

Usage

Usage: gday [OPTIONS] <COMMAND>

Commands:
  send  Send files and/or directories
  get   Receive files
  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>            Connect to a custom server port
  -u, --unencrypted            Connect to server with TCP instead of TLS
  -v, --verbosity <VERBOSITY>  Verbosity. (trace, debug, info, warn, error) [default: warn]
  -h, --help                   Print help
  -V, --version                Print version

Similar Projects

No relays Works beyond LAN Works through very strict NATs No port forwarding Encrypted Can resume interrupted transfers
gday
magic-wormhole
croc
p2pcopy
iwant
zget
sharedrop
filepizza
Personal SSH or HTTPS
Personal FTP
Dropbox, Google Drive, etc.
Delivering a USB drive

Open an issue to add more projects to this list.

Related

Commit count: 91

cargo fmt