quic-send
quic-send is a peer-to-peer file transfer tool that uses the QUIC protocol to transfer data over a direct connection (no relay involved).
[!NOTE]
Because quic-send uses NAT-traversal, a direct connection might not be possible on every network.
Features
- P2P Data transfer: All files are sent over a direct connection, the data is never relayed through another server. The only other parties
involved is a STUN server (Google STUN) and an optional roundezvous server (included in this repo).
- Encryption: quic-send uses the encryption provided by the quinn crate (which uses rustls and ring under the hood).
- Resumable transfers: If the connection is lost, the transfer can be resumed from where it left off.
- Transfer files & Folders
- No port forwarding required: quic-send makes use of UDP hole punching to establish a connection between the two peers, without requiring open ports.
Usage
Sending files
$ qs send <file/folder>
code: 123456
on the other peer, run the following command:
qs receive 123456
Receiving files
$ qs receive 123456
Comparison with other file transfer tools
Feature |
quic-send |
Magic Wormhole |
croc |
Encryption |
✅ |
✅ |
✅ |
Direct (P2P) transfer |
✅ |
(✅)* |
❌ |
Resumable transfers |
✅ |
❌ |
✅ |
Transfer files & Folders |
✅ |
✅ |
✅ |
(fallback) Relay server |
❌ |
✅ |
✅ |
- While it is possible in Magic Wormhole, establishing a direct connection is very unlikely (as the connection tries to establish a direct TCP connection), quick send uses UDP hole punching instead which is way more reliable and works for most networks.