I’m happy to announce a new utility application for macOS: Transfer.

Transfer is a simple and reliable TFTP (Trivial File Transfer Protocol) server application for macOS. TFTP is a high-level protocol to read and write files from or to a remote server. The protocol was developed in the 1970s, however, it still commonly used because of its simplicity and minimal memory and processing requirements. TFTP is used, for example, to boot diskless workstations or load files to networks devices such as routers.


Transfer for macOS

I was trusted with the idea of developing a TFTP server for macOS by my friend Sam Clements, who shared with me his frustrations about the lack of a robust and reliable TFTP server solution for macOS. In particular, we identified two main limitations of existing implementations currently available for macOS, including the macOS’ built-in TFTP server:

No real-time updates of current transfers in progress: TFTP transfers are very slow, therefore, progress updates are important for a better user experience. However, because some of the available applications out there are just a front-end GUI to control (start, stop) and configure the root folder of the macOS’ built-in TFTP server, they don’t provide real-time updates of current transfers in progress. Other TFTP server applications lack this functionality as well. As a result, information such as the rate at which data is being transferred, or how much time is left before the transfer is completed, is always unknown.

No support for broadcast transfer requests: By design, TFTP requests made to the broadcast address 255.255.255.255 should be rejected to prevent unauthorized transfers, however, under some circumstances, support for broadcast transfer requests is necessary. The macOS’ built-in TFTP server and other available alternatives for macOS don’t provide support for broadcast transfer requests.

The main goal of Transfer is to address these limitations, offering a user interface that allows you to have complete control of the transfers and the files that can be accessed via TFTP.

Transfer is fully compliant with RFC 1350 - The TFTP Protocol (Revision 2) and provides support for the following TFTP protocol extensions and options:

RFC 2347 - TFTP Option Extension
RFC 2348 - TFTP Blocksize Option
RFC 2349 - TFTP Timeout Interval and Transfer Size Options

The user interface is very simple, with a file management view for the root TFTP directory and two lists for displaying the status of transfers, one for downloads (read requests) and another one for uploads (write requests). In the file management view, you can drag and drop files to or out of Transfer, or quick preview, open, rename and delete files in the root TFTP directory.


Transfer Status

The information for each transfer includes the name of the file being transferred, the transfer rate, how much time is left to complete the transfer (when the file size is known), whether the transfer mode is binary or ASCII, and the IP address of the client that initiated the transfer. And Transfer automatically saves the information of completed transfers in case you need to go back and check something about them or simply export them to CSV.

In addition, settings are available to configure how you wish to handle overwriting existing files during uploads and to enable broadcast transfer requests, as well as advanced tuning of the TFTP protocol.

File transfers over TFTP might be something you don’t come across very often (or not at all) but if you’re in need of it, Transfer will get the job done beautifully.

Transfer is $19.99 and can be downloaded here. A 7-day free trial is available.