18 releases
0.3.2 | Oct 29, 2024 |
---|---|
0.3.1 | Jul 17, 2024 |
0.2.13 | Jun 6, 2024 |
0.2.12 | Mar 13, 2024 |
0.1.5 | Mar 20, 2023 |
#328 in Command line utilities
2,149 downloads per month
Used in 2 crates
105KB
2.5K
SLoC
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 (Server)
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
Usage (Client)
Client code is protected by a feature flag names client
.
To install the client and server using Cargo:
cargo install --features client tftpd
tftpc --help
To connect the client to a tftp server running on IP address 127.0.0.1
, read-only, on port 1234
and download a file named example.file
tftpc example.file -i 0.0.0.0 -p 1234 -d
To connect the client to a tftp server running on IP address 127.0.0.1
, read-only, on port 1234
and upload a file named example.file
tftpc example.file -i 0.0.0.0 -p 1234 -u
License
This project is licensed under the MIT License.