## Socket pair for FTP like file transfer
Single binary containing both server and client.
### Installation and usage
Quickly run with:
```shell
cargo run --
```
or create and run an optimized, independent binary:
```shell
cargo build --release
./target/release/fragilebyte
```
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:
```
USAGE:
fragilebyte [OPTIONS]
OPTIONS:
-b, --chunksize Chunksize used in the file transfer (bytes) [default: 8192]
-f, --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 where the service is hosted [default: 8080]
-t, --target Server's address when connecting as a client
--timeout Seconds of inactivity after which the server closes itself
[default: 30]
-V, --version Print version information
```
### Dependencies
![DependenciesGraph](docs/structure.svg)