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.
Installation
Executable
- Go to releases and download the correct file for your platform.
- Extract it
(on Linux, try:
tar xf <file>). - 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
- 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.