TFTPy is a pure Python implementation of the Trivial FTP protocol.
I wrote it because the VoIP company that I work for uses TFTP to pull firmware loads for our sets, and at times when this doesn't work we use a Windows-based diagnostic tool to troubleshoot the connection.
As all of the computers in my home run some flavour of Linux or FreeBSD, this tool wasn't much use to me, so I started one of my own. I decided to use Python since it's comfortable and available for the platforms that I care about, and was surprised to not find a pre-existing TFTP library for it. So, I wrote one, and here it is. It's not 1.0 yet, but downloading is production-ready IMHO, as some of the people using it tell me.
At this time, it supports the following RFCs:
- 1350 The TFTP Protocol, revision 2 (octet mode only)
- 2347 TFTP Option Extension
- 2348 TFTP Blocksize Option
- 2349 TFTP Timeout Interval and Transfer Size Options (just the tsize option right now)
I do have plans for this code before a 1.0 release, including the following:
- Full RFC 1350 compliance, including netascii mode (I could care less about "mail" mode).
- Symmetric UDP support. I don't know of an RFC for this but it's a no-brainer for NAT traversal. In this mode the server should always respond on the port that the RRQ was sent to, so stateful firewalls will permit the response.
The latest code though is always on the master branch in Github. I did use SVN in SourceForge for a while, but after discovering Git I couldn't go back. To clone the repository, run the following command using git
git clone git://github.com/msoulier/tftpy.gitPatches welcome, even if I can't guarantee response time. You can of course send me the url of a public git repository to pull from as well.
The Github project page is right here.
SourceForge doesn't make the mailing list easy to find, so here is a direct link if you'd like to join.
Feel free to email me with any questions, or contact me through github.
To submit a bug report, please use the issue tracker in the Github project page. I've shut down the trackers at sourceforge for now.
Last updated: May 10, 2010.