Purpose

Note! This is a work in progress and is in no means production ready

Transfer files as quickly, safely, and painlessly as possible on a local network.

This readme is also available as a book.

qft optimizes for a scenario where embedded systems regularly transfer large files across a local network, such as a continuous integration pipeline where firmware (e.g. Rauc) can take significant time to transfer with tools such as rsync, scp, or netcat (FYI: Don’t rauc upgrade this way, instead use delta or adaptive upgrades).

To accomplish this, qft acts as a server/client that transfers data over TCP. It is very similar to how netcat can be used to transfer files, but qft focuses solely on transferring files, and comes with a variety of customization options such as compression/decompression, memory mapping, preallocation options and more. TCP is chosen for reliable data transfer, and no authentication or encryption is layered on top to reduce the overhead, addressing remote targets by mDNS is also supported.

If you are worried about a man-in-the-middle, you can simply check your data on the receiving end before continuing. There should be no additional security concerns (if you disagree, please create an issue highlighting the concern).