TFTP Server Daemon implemented in Rust
As the tests are run concurrently, the directory might already
exist, so just ignore the failure.
Fixes the following error when running the tests:
---- window::tests::fills_and_removes_from_window stdout ----
thread 'window::tests::fills_and_removes_from_window' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 17, kind: AlreadyExists, message: "File exists" }', src/window.rs:194:38
|
||
|---|---|---|
| .github/workflows | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE.md | ||
| README.md | ||
TFTP Server Daemon
Pure Rust implementation of a Trivial File Transfer Protocol server daemon.
This server implements RFC 1350, The TFTP Protocol (Revision 2). It also supports the following RFC 2347 TFTP Option Extensions:
- RFC 2348 Blocksize Option
- RFC 2349 Timeout Interval Option
- RFC 2349 Transfer Size Option
- RFC 7440 Windowsize Option
Security
Since TFTP servers do not offer any type of login or access control mechanisms, this server only allows transfer and receiving inside a chosen folder, and disallows external file access.
Documentation
Documentation for the project can be found in docs.rs.
Usage
To install the server using Cargo:
cargo install tftpd
tftpd --help
To run the server on the IP address 0.0.0.0, read-only, on port 1234 in the /home/user/tftp directory:
tftpd -i 0.0.0.0 -p 1234 -d "/home/user/tftp" -r
License
This project is licensed under the MIT License.