25 releases (1 stable)

1.0.0 Apr 25, 2026
0.5.3 Apr 1, 2026
0.5.2 Mar 22, 2026
0.5.1 Nov 19, 2025
0.1.5 Mar 20, 2023

#272 in Command line utilities

Download history 215/week @ 2026-01-22 580/week @ 2026-01-29 278/week @ 2026-02-05 230/week @ 2026-02-12 473/week @ 2026-02-19 383/week @ 2026-02-26 493/week @ 2026-03-05 490/week @ 2026-03-12 536/week @ 2026-03-19 1754/week @ 2026-03-26 1738/week @ 2026-04-02 2650/week @ 2026-04-09 3722/week @ 2026-04-16 3586/week @ 2026-04-23 1702/week @ 2026-04-30 7020/week @ 2026-05-07

16,809 downloads per month
Used in 7 crates (3 directly)

MIT license

135KB
3K 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:

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.

Dependencies

~0.2–1.8MB
~32K SLoC