- ✅ Basic file upload/download
- ✅ Progress bar with speed display
- ✅ Smart path detection
- ✅ SSH config integration
- Resume interrupted transfers - Continue from last position
- File checksum verification - MD5/SHA256 to verify integrity
- Skip unchanged files - Compare size/mtime before transfer
- Partial file support - Transfer only changed parts
- Transfer state persistence - Save progress to resume later
- Multi-file upload -
xds upload file1 file2 file3 /remote/ - Multi-file download -
xds download /remote/file1 /remote/file2 ./ - Pattern matching -
xds upload *.txt /remote/ - Exclude patterns -
xds upload . /remote/ --exclude "*.log"
- Recursive upload -
xds upload -r ./local_dir /remote/dir - Recursive download -
xds download -r /remote/dir ./local_dir - Directory sync -
xds sync ./local /remote(bidirectional) - Preserve permissions - Keep file modes and timestamps
- Execute commands -
xds exec "ls -la"orxds run script.sh - Interactive shell -
xds shellorxds ssh - List remote files -
xds ls /remote/path - Remote file info -
xds stat /remote/file - Delete remote files -
xds rm /remote/file
- Compression - Enable SSH compression for faster transfer
- Bandwidth limiting -
xds upload --limit 1MB/s file.tar - Parallel transfers - Transfer multiple files simultaneously
- Diff before transfer - Show what will be transferred
- Connection profiles - Save frequently used paths
- Transfer history - Log all transfers
- Bookmarks - Quick access to common paths
- Config file support -
~/.xds/config.yaml
- Port forwarding -
xds forward local:8080:remote:80 - SOCKS proxy -
xds proxy --port 1080 - File watching - Auto-sync on file changes
- Encrypted archives - Compress and encrypt before transfer
- JSON output -
xds list --jsonfor scripting - Webhook notifications - Notify on transfer completion
- API mode - Use as a library in other Go programs
- Shell completion - Bash/Zsh/Fish completion scripts
- Dry-run mode -
xds upload --dry-runto preview - Verbose logging -
xds upload -vvvfor debugging - Transfer statistics - Show transfer summary
Focus on making the tool production-ready:
- Internationalization (English)
- Resume capability
- Better error handling
- File verification
Add features for advanced users:
- Batch operations
- Directory sync
- Remote commands
- Configuration management
Polish and extend:
- Compression
- Parallel transfers
- Bandwidth control
- Developer tools
- Comprehensive unit tests
- Integration tests
- Benchmark tests
- CI/CD pipeline
- Code documentation
- Error handling improvements
- Connection pooling
- Transfer optimization
- Memory efficiency
- Large file handling
- Known hosts verification
- Key passphrase support
- Certificate pinning
- Audit logging
| Feature | xds (planned) | scp | rsync | rclone |
|---|---|---|---|---|
| Resume transfers | ✅ | ❌ | ✅ | ✅ |
| Progress bar | ✅ | ❌ | ✅ | ✅ |
| SSH config | ✅ | ✅ | ✅ | ❌ |
| Incremental | ✅ | ❌ | ✅ | ✅ |
| Easy to use | ✅ | ✅ | ❌ | ❌ |
| Default server | ✅ | ❌ | ❌ | ❌ |
We welcome contributions! Priority areas:
- Resume/incremental transfer implementation
- Batch operations
- Directory sync
- Test coverage
Please open issues for:
- Feature requests
- Bug reports
- Usability improvements
- Documentation improvements