Skip to content

ochaton/hermes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hermes

Fast peer-to-peer file transfer over HTTP/3 (QUIC) with multistream parallel downloads.

Install

From source (requires Go 1.22+):

go install github.com/ochaton/hermes@latest

Pre-built binaries are available on the releases page.

Usage

Share a file

hermes share --addr <ip:port> <file>

Prints a token like 192.168.1.5:4443/a1b2c3d4e5f60718. Anyone on the network can use it to download the file.

By default the address is 0.0.0.0:4443 and hermes auto-detects the outbound IP to display the correct token.

Download a file

hermes download [--streams N] <ip:port/token>

Downloads the file using N parallel QUIC streams (default 8). Each chunk is verified with xxHash64. The file is written atomically — saved only after a full-file checksum passes.

Example

# sender
hermes share --addr 0.0.0.0:4443 video.mp4
# prints: 192.168.1.5:4443/a1b2c3d4e5f60718

# receiver
hermes download 192.168.1.5:4443/a1b2c3d4e5f60718

About

QUIC-based peer-2-peer file transfer

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages