1 unstable release
new 0.3.0 | Dec 13, 2024 |
---|
#1894 in Network programming
106 downloads per month
Used in qs-cli
60KB
1.5K
SLoC
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.
The icon of the gui is made with the font Commodore 64 Rounded by Devin Cook.
Dependencies
~16–26MB
~497K SLoC