Skip to content

maxomatic458/quic-send

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

demo

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.