Skip to content

TrainFun/flying

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flying

Fast, secure, encrypted file transfer tool with automatic peer discovery.

Features

  • 🔒 AES-256-GCM encryption - All transfers are encrypted
  • 📁 Folder support - Send entire directories with -r flag
  • 🚀 Streaming transfer - Optimized for speed, especially with multiple small files
  • 🔍 Auto-discovery - Finds peers automatically via mDNS
  • ♻️ Smart duplicate detection - Skips identical files (single file transfers only)
  • 📊 Real-time progress - Shows transfer speed and progress

Installation

Desktop & Mobile GUI

Flying now has a graphical user interface (GUI) version for both desktop and mobile users!

Download the GUI app for your platform from the releases page:

  • Windows: .msi or .exe installer
  • macOS: .dmg or .app
  • Linux: .AppImage, .deb, or .rpm
  • Android: .apk installer

Command Line Interface (CLI)

Option 1: cargo-binstall

cargo binstall flying --git https://github.com/wpcRaskolnikov/flying

Option 2: Download from Releases

Download the latest CLI binary for your platform from releases page.

Option 3: Build from Source

cargo build --release

Binary: target/release/flying

Quick Start

Either side must use -l to listen first, the other side will connect

# Sender listens (generates password)
# Computer A:
flying send -l myfile.pdf
# Computer B:
flying receive the-generated-password

Command Line Options

Send Command

flying send [OPTIONS] <file> [password]

Options:

  • -l, --listen - Listen for connections (generates password)
  • -c, --connect <IP> - Connect to specific IP
  • -r, --recursive - Send folders
  • -P, --persistent - Keep listening after transfer completes (requires -l)

Examples:

# Listen mode
flying send -l document.pdf

# Send folder
flying send -lr my-project

# Persistent mode (multiple transfers)
flying send -lP video.mp4

Receive Command

flying receive [OPTIONS] [password]

Options:

  • -l, --listen - Listen for connections
  • -c, --connect <IP> - Connect to specific IP
  • -o, --output <DIR> - Output directory (default: current directory)

Examples:

# Auto-discover sender
flying receive the-password

# Listen mode
flying receive -l

# Custom output directory
flying receive -o ~/Downloads the-password

Contributing

Contributions welcome! Submit issues or pull requests.

About

A minimal file transfer tool

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 58.7%
  • TypeScript 33.2%
  • Kotlin 7.6%
  • HTML 0.5%