Skip to content
/ vaayu Public

A modern, secure, parallel, and resumable SSH file transfer CLI (scp/rsync replacement).

License

Notifications You must be signed in to change notification settings

R0X4R/vaayu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

thumbnail

Modern β€’ Secure β€’ Parallel β€’ Resumable

Python 3.9+ License: MIT SSH/SFTP

Vaayu is the next-generation SSH file transfer tool that moves your data like air - fast, light, and omnipresent.


✨ Why Vaayu?

Vaayu (Sanskrit: ΰ€΅ΰ€Ύΰ€―ΰ₯) means "air"β€”the element that flows everywhere with speed and grace. Just as air adapts to any environment while maintaining its essential properties, Vaayu delivers files across networks with uncompromising reliability and performance.

πŸš€ Core Capabilities

Feature Description
πŸ”’ Secure by Design Modern SSH ciphers (ChaCha20-Poly1305, AES-256-GCM) with optional strict host key verification
⚑ Lightning Fast Parallel transfers with intelligent concurrency auto-tuning
πŸ”„ Bulletproof Resume Atomic writes with .part files and intelligent offset recovery
πŸ›‘οΈ Data Integrity SHA-256 verification with robust remote fallback chains
🎯 Smart Operations Recursive directory sync, wildcard matching, and real-time progress
πŸ‘οΈ Live Monitoring Watch mode for continuous synchronization
🌐 Universal Windows, macOS, Linux (Python 3.9+)

πŸ“‘ Transfer Modes

  • πŸ“€ Send β€” Local β†’ Remote with recursive directory support
  • πŸ“₯ Get β€” Remote β†’ Local with wildcard expansion
  • πŸ”„ Relay β€” Remote β†’ Remote without local download

πŸ—οΈ Architecture

Built on enterprise-grade foundations:

  • AsyncIO + AsyncSSH β€” High-performance asynchronous I/O
  • Rich Progress β€” Beautiful terminal UI with real-time metrics
  • Watchdog β€” Filesystem monitoring for live sync
  • zstd β€” Optional compression pipeline (future enhancement)

πŸš€ Quick Start

Installation

pipx install vaayu

Windows (PowerShell)

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .

macOS/Linux (Bash)

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Verify Installation

vaayu --help

πŸ“š Command Reference

Global Options

Short Long Description
-h --help Show help message
-p --port SSH port (default: 22)
-u --username SSH username
-P --password SSH password
-i --identity Path to private key
-j --parallel Parallel transfer jobs
-r --retries Max retries per file (default: 5)
-b --backoff Initial backoff seconds (default: 0.5)
-c --compress Enable compression
-z --zstd-level Compression level (default: 3)
-k --verify-host-key Strict host key verification
-n --no-verify Skip hash verification

Commands

Command Description
send Transfer files from local to remote
get Transfer files from remote to local
relay Transfer files between two remote hosts

πŸ’Ό Usage Examples

πŸ“€ Send Operations

Basic File Upload

vaayu -u alice -i ~/.ssh/id_ed25519 send [email protected] /remote/backup file.txt

Recursive Directory Upload

vaayu -u alice -i ~/.ssh/id_ed25519 send [email protected] /remote/backup /local/project/

Wildcard Upload with High Parallelism

vaayu -u alice -i ~/.ssh/id_ed25519 -j 16 send [email protected] /remote/logs *.log

Password Authentication

vaayu -u alice -P mypassword send [email protected] /remote/backup document.pdf

Custom Port and Strict Host Key Verification

vaayu -u alice -p 2222 -k -i ~/.ssh/id_ed25519 send [email protected] /backup file.txt

Multiple Files and Directories

vaayu -u alice -i ~/.ssh/id_ed25519 send [email protected] /backup file1.txt dir1/ *.csv

Live Watch Mode

vaayu -u alice -i ~/.ssh/id_ed25519 send [email protected] /remote/www /local/website/ -W

πŸ“₯ Get Operations

Basic File Download

vaayu -u bob -i ~/.ssh/id_ed25519 get [email protected] /local/downloads /remote/file.txt

Wildcard Download

vaayu -u bob -i ~/.ssh/id_ed25519 get [email protected] /local/logs /var/log/*.log

Recursive Directory Download

vaayu -u bob -i ~/.ssh/id_ed25519 get [email protected] /local/backup /remote/project/

Multiple Remote Paths

vaayu -u bob -i ~/.ssh/id_ed25519 get [email protected] /local/data /remote/file1.txt /remote/dir/ /remote/*.csv

High Concurrency Download

vaayu -u bob -i ~/.ssh/id_ed25519 -j 32 get [email protected] /local/download /remote/bigdata/

πŸ”„ Relay Operations

Direct Remote-to-Remote Transfer

vaayu -u admin -i ~/.ssh/id_ed25519 relay [email protected] [email protected] /data/file.txt /backup/file.txt

Multiple File Relay

vaayu -u admin -i ~/.ssh/id_ed25519 relay [email protected] [email protected] /data/file1.txt /data/file2.txt /backup/file1.txt /backup/file2.txt

Cross-Server Directory Sync

vaayu -u admin -i ~/.ssh/id_ed25519 relay [email protected] [email protected] /var/www/ /backups/www/

βš™οΈ Advanced Usage

Resume Interrupted Transfer

vaayu -u alice -i ~/.ssh/id_ed25519 send [email protected] /remote/backup largefile.zip

Skip Verification for Trusted Networks

vaayu -u alice -i ~/.ssh/id_ed25519 -n send [email protected] /remote/backup *.txt

Custom Retry Strategy

vaayu -u alice -i ~/.ssh/id_ed25519 -r 10 -b 1.0 send [email protected] /backup file.txt

Compression Enabled

vaayu -u alice -i ~/.ssh/id_ed25519 -c -z 6 send [email protected] /backup archive.tar

πŸ”§ Performance Tuning

Parallelism Guidelines

File Count Recommended -j Use Case
1-10 2-4 Large files
10-100 4-8 Mixed workload
100-1000 8-16 Many small files
1000+ 16-32 Massive parallel I/O

Network Optimization

vaayu -u user -j 8 -r 3 -b 0.2 send user@host /dest /large/dataset/

πŸ›‘οΈ Security Features

Authentication Methods

  • SSH Key Authentication (Recommended)
  • Password Authentication
  • SSH Agent Support

Encryption Standards

Data Integrity

  • SHA-256 Verification (Default)
  • Atomic Writes (.part β†’ rename)
  • Multiple Remote Hash Sources

πŸ₯ Error Handling & Recovery

Automatic Recovery Features

  • Resume from Interruption β€” Continues from last byte
  • Exponential Backoff β€” Smart retry timing
  • Hash Verification β€” Detects corruption
  • Atomic Operations β€” No partial writes

Common Issues & Solutions

Issue Solution
Connection timeout Increase -r retries and -b backoff
Permission denied Check SSH key permissions and remote path access
Hash mismatch Network corruption; transfer will auto-retry
Host key verification failed Use -k flag with proper known_hosts

πŸ§ͺ Testing & Validation

Run Test Suite

pytest -q

Feature Validation Commands

Resume Testing

vaayu -u user send user@host /dest largefile.bin

Verification Testing

vaayu -u user send user@host /dest testfile.txt
sha256sum testfile.txt
ssh user@host "sha256sum /dest/testfile.txt"

Performance Testing

time vaayu -u user -j 16 send user@host /dest /large/dataset/

πŸ“Š Project Structure

vaayu/
β”œβ”€β”€ cli.py           # Command-line interface
β”œβ”€β”€ ssh_client.py    # AsyncSSH wrapper
β”œβ”€β”€ transfer.py      # Core transfer logic
β”œβ”€β”€ verify.py        # Hash verification
β”œβ”€β”€ utils.py         # Utilities and helpers
β”œβ”€β”€ watch.py         # Filesystem monitoring
β”œβ”€β”€ compress.py      # Compression (future)
└── cloud.py         # Cloud protocols (future)

πŸ—ΊοΈ Roadmap

Upcoming Features

  • πŸ—œοΈ In-stream zstd compression
  • πŸ” Enhanced remote hash detection
  • πŸ“„ Configuration file support
  • 🌩️ Cloud provider integration
  • πŸ“ˆ Advanced performance metrics
  • πŸ” Certificate-based authentication

🀝 Contributing

We welcome contributions! Please check out our development setup:

python -m venv .venv
source .venv/bin/activate  # or .venv\Scripts\Activate.ps1 on Windows
pip install -e .[dev]
pytest

πŸ“„ License

Released under the MIT License. See LICENSE for details.


Built with ❀️ for the SSH community

Vaayu β€” Where files flow like air


πŸ“ Note: This README was generated with AI assistance because the developer was too lazy to write comprehensive documentation (but smart enough to make AI do it properly). 😴✨