Cryptographically secure file transfer CLI tool
Go to file
einisto 35fb797c95 Key-based authentication & critical fix to server's async behaviour
* 8 character long alphanumeric key authentication (server-side)
* Modified integration test to skip the previously mentioned key authentication
* Fixed a previously made typo, which caused the server to await until a single
  client's connection was done
* Simplified the structure of client.rs & server.rs a lot, also improved comments
* Confirm client's connection request with SYN
* Version bump, v0.2.0 => v0.3.0
2022-07-29 17:24:20 +03:00
.github/workflows Improved workflows 2022-07-27 21:26:03 +03:00
data Initial commit 2022-07-10 22:16:50 +03:00
doc Key-based authentication & critical fix to server's async behaviour 2022-07-29 17:24:20 +03:00
output Initial commit 2022-07-10 22:16:50 +03:00
src Key-based authentication & critical fix to server's async behaviour 2022-07-29 17:24:20 +03:00
tests Key-based authentication & critical fix to server's async behaviour 2022-07-29 17:24:20 +03:00
.gitignore Initial commit 2022-07-10 22:16:50 +03:00
Cargo.lock Key-based authentication & critical fix to server's async behaviour 2022-07-29 17:24:20 +03:00
Cargo.toml Key-based authentication & critical fix to server's async behaviour 2022-07-29 17:24:20 +03:00
LICENSE Initial commit 2022-07-10 22:16:50 +03:00
README.md Include version to README 2022-07-27 20:46:59 +03:00

TCP socket pair for easy and efficient file transfer

Single binary containing both server and client. Originally made as an backend for other project.

Installation and usage

Quickly run with:

cargo run -- <OPTIONS>

or create and run an optimized, independent binary:

cargo build --release
./target/release/fragilebyte <OPTIONS>

If no options are specified the app starts as a server by default. It can be started as a client by defining a target address as shown below.

USAGE:
    fragilebyte [OPTIONS]

OPTIONS:
    -b, --buffersize <BUFFERSIZE>    Buffersize used in the file transfer (bytes) [default: 8192]
    -f, --fileroot <FILEROOT>        Path to the folder where the files are outputted as a client or
                                     served from as a server [default: './output' / './data']
    -h, --help                       Print help information
        --localhost                  Run only in the local network
    -p, --port <PORT>                Port where the service is hosted [default: 8080]
    -t, --target <TARGET>            Server's address when connecting as a client
        --timeout <TIMEOUT>          Seconds of inactivity after which the server closes itself
                                     [default: 30]
    -V, --version                    Print version information

Dependencies

DependenciesGraph