gday
Command line tool to securely send files (without a relay or port forwarding).
Installation
To run the executable directly:
- Download an executable from releases.
- Extract it (on Linux:
tar xf <file>). - 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 sendthe 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
unsafeRust 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
Open an issue to add more projects to this list.
Related
- gday - Command line tool for sending files.
- gday_server - Server that lets two peers share their socket addresses.
- gday_hole_punch - Library for establishing peer-to-peer TCP connection.
- gday_file_transfer - Library for transferring files over a connection.
- gday_encryption - Library for encrypting an IO stream.
- gday_contact_exchange_protocol - Library with protocol for two peers to share their socket addresses via a server.