{"id":31041917,"url":"https://github.com/r0x4r/vaayu","last_synced_at":"2026-04-19T03:02:35.394Z","repository":{"id":310206485,"uuid":"1039073634","full_name":"R0X4R/vaayu","owner":"R0X4R","description":"A modern, secure, parallel, and resumable SSH file transfer CLI (scp/rsync replacement).","archived":false,"fork":false,"pushed_at":"2025-08-16T14:36:30.000Z","size":85,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-28T10:52:19.054Z","etag":null,"topics":["async","asyncio","automation","backup","cli","cross-platform","devops","file-transfer","parallel-processing","pypi","python","python3","resumable-transfers","scp-replacement","secure-transfer","sftp","ssh","sync","sysadmin","terminal"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/R0X4R.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-16T12:26:55.000Z","updated_at":"2025-08-26T17:44:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"10b641ab-b443-428c-9912-aefcba0595f8","html_url":"https://github.com/R0X4R/vaayu","commit_stats":null,"previous_names":["r0x4r/vaayu"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/R0X4R/vaayu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R0X4R%2Fvaayu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R0X4R%2Fvaayu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R0X4R%2Fvaayu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R0X4R%2Fvaayu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/R0X4R","download_url":"https://codeload.github.com/R0X4R/vaayu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/R0X4R%2Fvaayu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31992822,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","asyncio","automation","backup","cli","cross-platform","devops","file-transfer","parallel-processing","pypi","python","python3","resumable-transfers","scp-replacement","secure-transfer","sftp","ssh","sync","sysadmin","terminal"],"created_at":"2025-09-14T10:53:08.162Z","updated_at":"2026-04-19T03:02:35.342Z","avatar_url":"https://github.com/R0X4R.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![thumbnail](https://github.com/R0X4R/vaayu/blob/main/.github/thumbnail.png?raw=true)\n\n\n**Modern • Secure • Parallel • Resumable**\n\n[![Python 3.9+](https://img.shields.io/badge/Python-3.9+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![SSH/SFTP](https://img.shields.io/badge/Protocol-SSH%2FSFTP-orange.svg)](https://www.openssh.com/)\n\nVaayu is the next-generation SSH file transfer tool that moves your data like air - fast, light, and omnipresent.\n\n\u003c/div\u003e\n\n---\n\n## ✨ Why Vaayu?\n\n**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.\n\n### 🚀 Core Capabilities\n\n| Feature | Description |\n|---------|-------------|\n| **🔒 Secure by Design** | Modern SSH ciphers (ChaCha20-Poly1305, AES-256-GCM) with optional strict host key verification |\n| **⚡ Lightning Fast** | Parallel transfers with intelligent concurrency auto-tuning |\n| **🔄 Bulletproof Resume** | Atomic writes with `.part` files and intelligent offset recovery |\n| **🛡️ Data Integrity** | SHA-256 verification with robust remote fallback chains |\n| **🎯 Smart Operations** | Recursive directory sync, wildcard matching, and real-time progress |\n| **👁️ Live Monitoring** | Watch mode for continuous synchronization |\n| **🌐 Universal** | Windows, macOS, Linux (Python 3.9+) |\n\n### 📡 Transfer Modes\n\n- **📤 Send** — Local → Remote with recursive directory support\n- **📥 Get** — Remote → Local with wildcard expansion\n- **🔄 Relay** — Remote → Remote without local download\n\n\n## 🏗️ Architecture\n\nBuilt on enterprise-grade foundations:\n\n- **AsyncIO + AsyncSSH** — High-performance asynchronous I/O\n- **Rich Progress** — Beautiful terminal UI with real-time metrics\n- **Watchdog** — Filesystem monitoring for live sync\n- **zstd** — Optional compression pipeline (future enhancement)\n\n\n## 🚀 Quick Start\n\n### Installation\n\n```css\npipx install vaayu\n```\n\n**Windows (PowerShell)**\n```powershell\npython -m venv .venv\n.\\.venv\\Scripts\\Activate.ps1\npip install -e .\n```\n\n**macOS/Linux (Bash)**\n```bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -e .\n```\n\n### Verify Installation\n```bash\nvaayu --help\n```\n\n\n## 📚 Command Reference\n\n### Global Options\n\n| Short | Long | Description |\n|-------|------|-------------|\n| `-h` | `--help` | Show help message |\n| `-p` | `--port` | SSH port (default: 22) |\n| `-u` | `--username` | SSH username |\n| `-P` | `--password` | SSH password |\n| `-i` | `--identity` | Path to private key |\n| `-j` | `--parallel` | Parallel transfer jobs |\n| `-r` | `--retries` | Max retries per file (default: 5) |\n| `-b` | `--backoff` | Initial backoff seconds (default: 0.5) |\n| `-c` | `--compress` | Enable compression |\n| `-z` | `--zstd-level` | Compression level (default: 3) |\n| `-k` | `--verify-host-key` | Strict host key verification |\n| `-n` | `--no-verify` | Skip hash verification |\n\n### Commands\n\n| Command | Description |\n|---------|-------------|\n| `send` | Transfer files from local to remote |\n| `get` | Transfer files from remote to local |\n| `relay` | Transfer files between two remote hosts |\n\n\n## 💼 Usage Examples\n\n### 📤 Send Operations\n\n**Basic File Upload**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/backup file.txt\n```\n\n**Recursive Directory Upload**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/backup /local/project/\n```\n\n**Wildcard Upload with High Parallelism**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 -j 16 send alice@server.com /remote/logs *.log\n```\n\n**Password Authentication**\n```bash\nvaayu -u alice -P mypassword send alice@server.com /remote/backup document.pdf\n```\n\n**Custom Port and Strict Host Key Verification**\n```bash\nvaayu -u alice -p 2222 -k -i ~/.ssh/id_ed25519 send alice@server.com /backup file.txt\n```\n\n**Multiple Files and Directories**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /backup file1.txt dir1/ *.csv\n```\n\n**Live Watch Mode**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/www /local/website/ -W\n```\n\n### 📥 Get Operations\n\n**Basic File Download**\n```bash\nvaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/downloads /remote/file.txt\n```\n\n**Wildcard Download**\n```bash\nvaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/logs /var/log/*.log\n```\n\n**Recursive Directory Download**\n```bash\nvaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/backup /remote/project/\n```\n\n**Multiple Remote Paths**\n```bash\nvaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/data /remote/file1.txt /remote/dir/ /remote/*.csv\n```\n\n**High Concurrency Download**\n```bash\nvaayu -u bob -i ~/.ssh/id_ed25519 -j 32 get bob@server.com /local/download /remote/bigdata/\n```\n\n### 🔄 Relay Operations\n\n**Direct Remote-to-Remote Transfer**\n```bash\nvaayu -u admin -i ~/.ssh/id_ed25519 relay admin@source.com admin@dest.com /data/file.txt /backup/file.txt\n```\n\n**Multiple File Relay**\n```bash\nvaayu -u admin -i ~/.ssh/id_ed25519 relay admin@source.com admin@dest.com /data/file1.txt /data/file2.txt /backup/file1.txt /backup/file2.txt\n```\n\n**Cross-Server Directory Sync**\n```bash\nvaayu -u admin -i ~/.ssh/id_ed25519 relay admin@prod.com admin@backup.com /var/www/ /backups/www/\n```\n\n### ⚙️ Advanced Usage\n\n**Resume Interrupted Transfer**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/backup largefile.zip\n```\n\n**Skip Verification for Trusted Networks**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 -n send alice@server.com /remote/backup *.txt\n```\n\n**Custom Retry Strategy**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 -r 10 -b 1.0 send alice@server.com /backup file.txt\n```\n\n**Compression Enabled**\n```bash\nvaayu -u alice -i ~/.ssh/id_ed25519 -c -z 6 send alice@server.com /backup archive.tar\n```\n\n\n## 🔧 Performance Tuning\n\n### Parallelism Guidelines\n\n| File Count | Recommended `-j` | Use Case |\n|------------|------------------|----------|\n| 1-10 | 2-4 | Large files |\n| 10-100 | 4-8 | Mixed workload |\n| 100-1000 | 8-16 | Many small files |\n| 1000+ | 16-32 | Massive parallel I/O |\n\n### Network Optimization\n\n```bash\nvaayu -u user -j 8 -r 3 -b 0.2 send user@host /dest /large/dataset/\n```\n\n\n## 🛡️ Security Features\n\n### Authentication Methods\n\n- **SSH Key Authentication** (Recommended)\n- **Password Authentication**\n- **SSH Agent Support**\n\n### Encryption Standards\n\n- **ChaCha20-Poly1305@openssh.com** (Primary)\n- **AES-256-GCM@openssh.com** (Fallback)\n\n### Data Integrity\n\n- **SHA-256 Verification** (Default)\n- **Atomic Writes** (`.part` → rename)\n- **Multiple Remote Hash Sources**\n\n\n## 🏥 Error Handling \u0026 Recovery\n\n### Automatic Recovery Features\n\n- **Resume from Interruption** — Continues from last byte\n- **Exponential Backoff** — Smart retry timing\n- **Hash Verification** — Detects corruption\n- **Atomic Operations** — No partial writes\n\n### Common Issues \u0026 Solutions\n\n| Issue | Solution |\n|-------|----------|\n| Connection timeout | Increase `-r` retries and `-b` backoff |\n| Permission denied | Check SSH key permissions and remote path access |\n| Hash mismatch | Network corruption; transfer will auto-retry |\n| Host key verification failed | Use `-k` flag with proper known_hosts |\n\n\n## 🧪 Testing \u0026 Validation\n\n### Run Test Suite\n```bash\npytest -q\n```\n\n### Feature Validation Commands\n\n**Resume Testing**\n```bash\nvaayu -u user send user@host /dest largefile.bin\n```\n\n**Verification Testing**\n```bash\nvaayu -u user send user@host /dest testfile.txt\nsha256sum testfile.txt\nssh user@host \"sha256sum /dest/testfile.txt\"\n```\n\n**Performance Testing**\n```bash\ntime vaayu -u user -j 16 send user@host /dest /large/dataset/\n```\n\n\n## 📊 Project Structure\n\n```\nvaayu/\n├── cli.py           # Command-line interface\n├── ssh_client.py    # AsyncSSH wrapper\n├── transfer.py      # Core transfer logic\n├── verify.py        # Hash verification\n├── utils.py         # Utilities and helpers\n├── watch.py         # Filesystem monitoring\n├── compress.py      # Compression (future)\n└── cloud.py         # Cloud protocols (future)\n```\n\n\n## 🗺️ Roadmap\n\n### Upcoming Features\n\n- 🗜️ **In-stream zstd compression**\n- 🔍 **Enhanced remote hash detection**\n- 📄 **Configuration file support**\n- 🌩️ **Cloud provider integration**\n- 📈 **Advanced performance metrics**\n- 🔐 **Certificate-based authentication**\n\n\n## 🤝 Contributing\n\nWe welcome contributions! Please check out our development setup:\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate  # or .venv\\Scripts\\Activate.ps1 on Windows\npip install -e .[dev]\npytest\n```\n\n---\n\n## 📄 License\n\nReleased under the **MIT License**. See [LICENSE](LICENSE) for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Built with ❤️ for the SSH community**\n\n*Vaayu — Where files flow like air*\n\n---\n\u003c/div\u003e\n\n\u003e 📝 **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). 😴✨\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr0x4r%2Fvaayu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr0x4r%2Fvaayu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr0x4r%2Fvaayu/lists"}