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.
- 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.
$ qs send <file/folder>
code: 123456
on the other peer, run the following command:
qs receive 123456
$ qs receive 123456
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.