Skip to content

Latest commit

 

History

History
142 lines (114 loc) · 4.33 KB

File metadata and controls

142 lines (114 loc) · 4.33 KB

XDS Roadmap & Feature Planning

Current Status

  • ✅ Basic file upload/download
  • ✅ Progress bar with speed display
  • ✅ Smart path detection
  • ✅ SSH config integration

Planned Features

High Priority

1. Resume & Incremental Transfer (rsync-like)

  • 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

2. Batch Operations

  • 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"

3. Directory Operations

  • 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

Medium Priority

4. Remote Operations

  • Execute commands - xds exec "ls -la" or xds run script.sh
  • Interactive shell - xds shell or xds ssh
  • List remote files - xds ls /remote/path
  • Remote file info - xds stat /remote/file
  • Delete remote files - xds rm /remote/file

5. Advanced Transfer Features

  • 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

6. Configuration & Management

  • Connection profiles - Save frequently used paths
  • Transfer history - Log all transfers
  • Bookmarks - Quick access to common paths
  • Config file support - ~/.xds/config.yaml

Low Priority

7. Advanced Features

  • 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

8. Developer Tools

  • JSON output - xds list --json for scripting
  • Webhook notifications - Notify on transfer completion
  • API mode - Use as a library in other Go programs

9. Quality of Life

  • Shell completion - Bash/Zsh/Fish completion scripts
  • Dry-run mode - xds upload --dry-run to preview
  • Verbose logging - xds upload -vvv for debugging
  • Transfer statistics - Show transfer summary

Implementation Phases

Phase 1: Core Enhancements (Current)

Focus on making the tool production-ready:

  • Internationalization (English)
  • Resume capability
  • Better error handling
  • File verification

Phase 2: Power User Features

Add features for advanced users:

  • Batch operations
  • Directory sync
  • Remote commands
  • Configuration management

Phase 3: Advanced Features

Polish and extend:

  • Compression
  • Parallel transfers
  • Bandwidth control
  • Developer tools

Technical Improvements

Code Quality

  • Comprehensive unit tests
  • Integration tests
  • Benchmark tests
  • CI/CD pipeline
  • Code documentation
  • Error handling improvements

Performance

  • Connection pooling
  • Transfer optimization
  • Memory efficiency
  • Large file handling

Security

  • Known hosts verification
  • Key passphrase support
  • Certificate pinning
  • Audit logging

Comparison with Similar Tools

Feature xds (planned) scp rsync rclone
Resume transfers
Progress bar
SSH config
Incremental
Easy to use
Default server

Contributing

We welcome contributions! Priority areas:

  1. Resume/incremental transfer implementation
  2. Batch operations
  3. Directory sync
  4. Test coverage

Feedback

Please open issues for:

  • Feature requests
  • Bug reports
  • Usability improvements
  • Documentation improvements