Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gierens/rft
File transfer project folder for TUM IN course "Protocol Design"
https://github.com/gierens/rft
Last synced: 9 days ago
JSON representation
File transfer project folder for TUM IN course "Protocol Design"
- Host: GitHub
- URL: https://github.com/gierens/rft
- Owner: gierens
- Created: 2024-05-02T09:00:32.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-09-13T19:38:17.000Z (about 2 months ago)
- Last Synced: 2024-09-15T10:25:30.468Z (about 2 months ago)
- Language: Rust
- Homepage:
- Size: 668 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rft
This project is a Rust implementation of a **Robust File Transfer (RFT)** protocol, designed for reliable file transfer over UDP.
This implementation follows the RFT protocol specification outlined here: https://nstangl.github.io/robust-file-transfer/.
# Installation
Clone the repository and build it via:
```bash
cargo build --release
```
The compiled binary for the CLI will be available in the `target/release` directory.# Usage
To start the server, use the following command with a port of you choosing:
```bash
./rft --server --port 8088
```To transfer files use the client:
```bash
./rft --port 8088 127.0.0.1 my-dir/File1.txt my-dir/File2.txt
```
The file paths are expected to be the same for the client and the server.The logging levels (`debug`, `error`, `warn`, `info`) can be specified via `env` variables:
```bash
RUST_LOG=warn ./rft --port 8088 127.0.0.1 my-dir/File1.txt
```For more details, run
```bash
./rft --help
```Happy transferring! 🚀