Skip to content

gdevanla/quicfiletransfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QUIC File Transfer Service

a cli + srv for transferring large files

Design

The File Transfer Service utilizes the quic-go implementation of the quic Protocol, built on top of UDP. Since quic allows for multiplexing of streams on a single connection, the service takes advantage of this to attempt to speed up file transfers by processing and writing the file from the remote host (the server) to the destination (the client).

A client attempts to make a connection to a host running the server implementation. If the connection is successful, the client then opens a stream, or multiple streams, to the host, requesting a file, along with providing the current stream and the total number of streams opened. The server determines the number of chunks and size of each chunk to then stream back to the client. Each stream is made aware of its start offset and the size of the chunk it is processing.

0RTT has also been enabled, which reduces the number of handshakes needed to make a secure connection.

cmd

A server and client implementation are both provided. For usage and configuration, check CMD.

About

a file transfer service utilizing quic

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%