vaayu 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
vaayu-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Eshan Singh
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
vaayu-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,386 @@
1
+ Metadata-Version: 2.4
2
+ Name: vaayu
3
+ Version: 0.1.0
4
+ Summary: A modern, secure, parallel, and resumable SSH file transfer CLI (scp/rsync replacement).
5
+ Author: Eshan Singh
6
+ Maintainer: Eshan Singh
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/R0X4R/vaayu
9
+ Project-URL: Bug Reports, https://github.com/R0X4R/vaayu/issues
10
+ Project-URL: Source, https://github.com/R0X4R/vaayu
11
+ Project-URL: Documentation, https://github.com/R0X4R/vaayu#readme
12
+ Keywords: ssh,sftp,file transfer,resumable,async,zstd,cli
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Topic :: System :: Networking
21
+ Classifier: Topic :: Utilities
22
+ Classifier: Environment :: Console
23
+ Classifier: Intended Audience :: Developers
24
+ Classifier: Intended Audience :: System Administrators
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: asyncssh>=2.14.2
29
+ Requires-Dist: zstandard>=0.22.0
30
+ Requires-Dist: rich>=13.7.0
31
+ Requires-Dist: watchdog>=4.0.0
32
+ Provides-Extra: dev
33
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
34
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
35
+ Requires-Dist: mypy>=1.10.0; extra == "dev"
36
+ Requires-Dist: ruff>=0.5.0; extra == "dev"
37
+ Dynamic: license-file
38
+
39
+ <div align="center">
40
+
41
+ ![thumbnail](https://github.com/R0X4R/vaayu/blob/main/.github/thumbnail.png?raw=true)
42
+
43
+
44
+ **Modern • Secure • Parallel • Resumable**
45
+
46
+ [![Python 3.9+](https://img.shields.io/badge/Python-3.9+-blue.svg)](https://www.python.org/downloads/)
47
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
48
+ [![SSH/SFTP](https://img.shields.io/badge/Protocol-SSH%2FSFTP-orange.svg)](https://www.openssh.com/)
49
+
50
+ Vaayu is the next-generation SSH file transfer tool that moves your data like air - fast, light, and omnipresent.
51
+
52
+ </div>
53
+
54
+ ---
55
+
56
+ ## ✨ Why Vaayu?
57
+
58
+ **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.
59
+
60
+ ### 🚀 Core Capabilities
61
+
62
+ | Feature | Description |
63
+ |---------|-------------|
64
+ | **🔒 Secure by Design** | Modern SSH ciphers (ChaCha20-Poly1305, AES-256-GCM) with optional strict host key verification |
65
+ | **⚡ Lightning Fast** | Parallel transfers with intelligent concurrency auto-tuning |
66
+ | **🔄 Bulletproof Resume** | Atomic writes with `.part` files and intelligent offset recovery |
67
+ | **🛡️ Data Integrity** | SHA-256 verification with robust remote fallback chains |
68
+ | **🎯 Smart Operations** | Recursive directory sync, wildcard matching, and real-time progress |
69
+ | **👁️ Live Monitoring** | Watch mode for continuous synchronization |
70
+ | **🌐 Universal** | Windows, macOS, Linux (Python 3.9+) |
71
+
72
+ ### 📡 Transfer Modes
73
+
74
+ - **📤 Send** — Local → Remote with recursive directory support
75
+ - **📥 Get** — Remote → Local with wildcard expansion
76
+ - **🔄 Relay** — Remote → Remote without local download
77
+
78
+
79
+ ## 🏗️ Architecture
80
+
81
+ Built on enterprise-grade foundations:
82
+
83
+ - **AsyncIO + AsyncSSH** — High-performance asynchronous I/O
84
+ - **Rich Progress** — Beautiful terminal UI with real-time metrics
85
+ - **Watchdog** — Filesystem monitoring for live sync
86
+ - **zstd** — Optional compression pipeline (future enhancement)
87
+
88
+
89
+ ## 🚀 Quick Start
90
+
91
+ ### Installation
92
+
93
+ **Windows (PowerShell)**
94
+ ```powershell
95
+ python -m venv .venv
96
+ .\.venv\Scripts\Activate.ps1
97
+ pip install -e .
98
+ ```
99
+
100
+ **macOS/Linux (Bash)**
101
+ ```bash
102
+ python3 -m venv .venv
103
+ source .venv/bin/activate
104
+ pip install -e .
105
+ ```
106
+
107
+ ### Verify Installation
108
+ ```bash
109
+ vaayu --help
110
+ ```
111
+
112
+
113
+ ## 📚 Command Reference
114
+
115
+ ### Global Options
116
+
117
+ | Short | Long | Description |
118
+ |-------|------|-------------|
119
+ | `-h` | `--help` | Show help message |
120
+ | `-p` | `--port` | SSH port (default: 22) |
121
+ | `-u` | `--username` | SSH username |
122
+ | `-P` | `--password` | SSH password |
123
+ | `-i` | `--identity` | Path to private key |
124
+ | `-j` | `--parallel` | Parallel transfer jobs |
125
+ | `-r` | `--retries` | Max retries per file (default: 5) |
126
+ | `-b` | `--backoff` | Initial backoff seconds (default: 0.5) |
127
+ | `-c` | `--compress` | Enable compression |
128
+ | `-z` | `--zstd-level` | Compression level (default: 3) |
129
+ | `-k` | `--verify-host-key` | Strict host key verification |
130
+ | `-n` | `--no-verify` | Skip hash verification |
131
+
132
+ ### Commands
133
+
134
+ | Command | Description |
135
+ |---------|-------------|
136
+ | `send` | Transfer files from local to remote |
137
+ | `get` | Transfer files from remote to local |
138
+ | `relay` | Transfer files between two remote hosts |
139
+
140
+
141
+ ## 💼 Usage Examples
142
+
143
+ ### 📤 Send Operations
144
+
145
+ **Basic File Upload**
146
+ ```bash
147
+ vaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/backup file.txt
148
+ ```
149
+
150
+ **Recursive Directory Upload**
151
+ ```bash
152
+ vaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/backup /local/project/
153
+ ```
154
+
155
+ **Wildcard Upload with High Parallelism**
156
+ ```bash
157
+ vaayu -u alice -i ~/.ssh/id_ed25519 -j 16 send alice@server.com /remote/logs *.log
158
+ ```
159
+
160
+ **Password Authentication**
161
+ ```bash
162
+ vaayu -u alice -P mypassword send alice@server.com /remote/backup document.pdf
163
+ ```
164
+
165
+ **Custom Port and Strict Host Key Verification**
166
+ ```bash
167
+ vaayu -u alice -p 2222 -k -i ~/.ssh/id_ed25519 send alice@server.com /backup file.txt
168
+ ```
169
+
170
+ **Multiple Files and Directories**
171
+ ```bash
172
+ vaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /backup file1.txt dir1/ *.csv
173
+ ```
174
+
175
+ **Live Watch Mode**
176
+ ```bash
177
+ vaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/www /local/website/ -W
178
+ ```
179
+
180
+ ### 📥 Get Operations
181
+
182
+ **Basic File Download**
183
+ ```bash
184
+ vaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/downloads /remote/file.txt
185
+ ```
186
+
187
+ **Wildcard Download**
188
+ ```bash
189
+ vaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/logs /var/log/*.log
190
+ ```
191
+
192
+ **Recursive Directory Download**
193
+ ```bash
194
+ vaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/backup /remote/project/
195
+ ```
196
+
197
+ **Multiple Remote Paths**
198
+ ```bash
199
+ vaayu -u bob -i ~/.ssh/id_ed25519 get bob@server.com /local/data /remote/file1.txt /remote/dir/ /remote/*.csv
200
+ ```
201
+
202
+ **High Concurrency Download**
203
+ ```bash
204
+ vaayu -u bob -i ~/.ssh/id_ed25519 -j 32 get bob@server.com /local/download /remote/bigdata/
205
+ ```
206
+
207
+ ### 🔄 Relay Operations
208
+
209
+ **Direct Remote-to-Remote Transfer**
210
+ ```bash
211
+ vaayu -u admin -i ~/.ssh/id_ed25519 relay admin@source.com admin@dest.com /data/file.txt /backup/file.txt
212
+ ```
213
+
214
+ **Multiple File Relay**
215
+ ```bash
216
+ vaayu -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
217
+ ```
218
+
219
+ **Cross-Server Directory Sync**
220
+ ```bash
221
+ vaayu -u admin -i ~/.ssh/id_ed25519 relay admin@prod.com admin@backup.com /var/www/ /backups/www/
222
+ ```
223
+
224
+ ### ⚙️ Advanced Usage
225
+
226
+ **Resume Interrupted Transfer**
227
+ ```bash
228
+ vaayu -u alice -i ~/.ssh/id_ed25519 send alice@server.com /remote/backup largefile.zip
229
+ ```
230
+
231
+ **Skip Verification for Trusted Networks**
232
+ ```bash
233
+ vaayu -u alice -i ~/.ssh/id_ed25519 -n send alice@server.com /remote/backup *.txt
234
+ ```
235
+
236
+ **Custom Retry Strategy**
237
+ ```bash
238
+ vaayu -u alice -i ~/.ssh/id_ed25519 -r 10 -b 1.0 send alice@server.com /backup file.txt
239
+ ```
240
+
241
+ **Compression Enabled**
242
+ ```bash
243
+ vaayu -u alice -i ~/.ssh/id_ed25519 -c -z 6 send alice@server.com /backup archive.tar
244
+ ```
245
+
246
+
247
+ ## 🔧 Performance Tuning
248
+
249
+ ### Parallelism Guidelines
250
+
251
+ | File Count | Recommended `-j` | Use Case |
252
+ |------------|------------------|----------|
253
+ | 1-10 | 2-4 | Large files |
254
+ | 10-100 | 4-8 | Mixed workload |
255
+ | 100-1000 | 8-16 | Many small files |
256
+ | 1000+ | 16-32 | Massive parallel I/O |
257
+
258
+ ### Network Optimization
259
+
260
+ ```bash
261
+ vaayu -u user -j 8 -r 3 -b 0.2 send user@host /dest /large/dataset/
262
+ ```
263
+
264
+
265
+ ## 🛡️ Security Features
266
+
267
+ ### Authentication Methods
268
+
269
+ - **SSH Key Authentication** (Recommended)
270
+ - **Password Authentication**
271
+ - **SSH Agent Support**
272
+
273
+ ### Encryption Standards
274
+
275
+ - **ChaCha20-Poly1305@openssh.com** (Primary)
276
+ - **AES-256-GCM@openssh.com** (Fallback)
277
+
278
+ ### Data Integrity
279
+
280
+ - **SHA-256 Verification** (Default)
281
+ - **Atomic Writes** (`.part` → rename)
282
+ - **Multiple Remote Hash Sources**
283
+
284
+
285
+ ## 🏥 Error Handling & Recovery
286
+
287
+ ### Automatic Recovery Features
288
+
289
+ - **Resume from Interruption** — Continues from last byte
290
+ - **Exponential Backoff** — Smart retry timing
291
+ - **Hash Verification** — Detects corruption
292
+ - **Atomic Operations** — No partial writes
293
+
294
+ ### Common Issues & Solutions
295
+
296
+ | Issue | Solution |
297
+ |-------|----------|
298
+ | Connection timeout | Increase `-r` retries and `-b` backoff |
299
+ | Permission denied | Check SSH key permissions and remote path access |
300
+ | Hash mismatch | Network corruption; transfer will auto-retry |
301
+ | Host key verification failed | Use `-k` flag with proper known_hosts |
302
+
303
+
304
+ ## 🧪 Testing & Validation
305
+
306
+ ### Run Test Suite
307
+ ```bash
308
+ pytest -q
309
+ ```
310
+
311
+ ### Feature Validation Commands
312
+
313
+ **Resume Testing**
314
+ ```bash
315
+ vaayu -u user send user@host /dest largefile.bin
316
+ ```
317
+
318
+ **Verification Testing**
319
+ ```bash
320
+ vaayu -u user send user@host /dest testfile.txt
321
+ sha256sum testfile.txt
322
+ ssh user@host "sha256sum /dest/testfile.txt"
323
+ ```
324
+
325
+ **Performance Testing**
326
+ ```bash
327
+ time vaayu -u user -j 16 send user@host /dest /large/dataset/
328
+ ```
329
+
330
+
331
+ ## 📊 Project Structure
332
+
333
+ ```
334
+ vaayu/
335
+ ├── cli.py # Command-line interface
336
+ ├── ssh_client.py # AsyncSSH wrapper
337
+ ├── transfer.py # Core transfer logic
338
+ ├── verify.py # Hash verification
339
+ ├── utils.py # Utilities and helpers
340
+ ├── watch.py # Filesystem monitoring
341
+ ├── compress.py # Compression (future)
342
+ └── cloud.py # Cloud protocols (future)
343
+ ```
344
+
345
+
346
+ ## 🗺️ Roadmap
347
+
348
+ ### Upcoming Features
349
+
350
+ - 🗜️ **In-stream zstd compression**
351
+ - 🔍 **Enhanced remote hash detection**
352
+ - 📄 **Configuration file support**
353
+ - 🌩️ **Cloud provider integration**
354
+ - 📈 **Advanced performance metrics**
355
+ - 🔐 **Certificate-based authentication**
356
+
357
+
358
+ ## 🤝 Contributing
359
+
360
+ We welcome contributions! Please check out our development setup:
361
+
362
+ ```bash
363
+ python -m venv .venv
364
+ source .venv/bin/activate # or .venv\Scripts\Activate.ps1 on Windows
365
+ pip install -e .[dev]
366
+ pytest
367
+ ```
368
+
369
+ ---
370
+
371
+ ## 📄 License
372
+
373
+ Released under the **MIT License**. See [LICENSE](LICENSE) for details.
374
+
375
+ ---
376
+
377
+ <div align="center">
378
+
379
+ **Built with ❤️ for the SSH community**
380
+
381
+ *Vaayu — Where files flow like air*
382
+
383
+ ---
384
+ </div>
385
+
386
+ > 📝 **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). 😴✨