{"id":30217387,"url":"https://github.com/mutasim77/xfer","last_synced_at":"2025-08-14T05:04:04.174Z","repository":{"id":289438100,"uuid":"971200637","full_name":"mutasim77/xfer","owner":"mutasim77","description":"✨ A minimalist, lightning-fast file transfer tool for terminal lovers.","archived":false,"fork":false,"pushed_at":"2025-04-23T08:41:22.000Z","size":6,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-04T06:07:22.251Z","etag":null,"topics":["cli","file-transfer","rsync","rust","scp","ssh"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/mutasim77.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}},"created_at":"2025-04-23T07:01:51.000Z","updated_at":"2025-04-24T12:43:02.000Z","dependencies_parsed_at":"2025-04-23T09:46:35.644Z","dependency_job_id":null,"html_url":"https://github.com/mutasim77/xfer","commit_stats":null,"previous_names":["mutasim77/xfer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mutasim77/xfer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fxfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fxfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fxfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fxfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mutasim77","download_url":"https://codeload.github.com/mutasim77/xfer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mutasim77%2Fxfer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270364967,"owners_count":24571422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"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":["cli","file-transfer","rsync","rust","scp","ssh"],"created_at":"2025-08-14T05:02:08.428Z","updated_at":"2025-08-14T05:04:04.146Z","avatar_url":"https://github.com/mutasim77.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# xfer - Simple File Transfer Tool\nA lightweight, CLI-based file transfer utility built for terminal lovers who want to simplify file transfers without using GUI tools.\n\n`xfer` is a Rust wrapper around powerful tools like `rsync`, `scp`, and `ssh` that simplifies the syntax and stores your credentials, making terminal-based file transfers painless.\n\n## Features\n- **Simple Syntax**: Easy-to-remember commands\n- **Server Aliases**: Use short names instead of typing full addresses\n- **Credentials Management**: Store SSH keys and connection details securely\n- **Smart Transfers**: Automatically selects the best tool for your transfer\n- **Interactive Mode**: Add and manage server configurations with ease\n\n## Installation\n```bash\n# Clone the repository\ngit clone https://github.com/mutasim77/xfer.git\ncd xfer\n\n# Build the project\ncargo build\n```\n\n## Global Installation\nAfter building your `xfer` tool, you'll want to make it available system-wide so you can run it from any directory. Here's how to properly install it:\n\n### Building the Release Version\nFirst, compile an optimized release version:\n```bash\n# Build the release version (optimized binary)\ncargo build --release\n```\nThis creates an optimized binary at `target/release/xfer`.\n\n### Installing System-wide\n#### Option 1: User-specific installation (recommended)\n```bash\n# Create ~/.local/bin directory if it doesn't exist\nmkdir -p ~/.local/bin\n\n# Copy the binary\ncp target/release/xfer ~/.local/bin/\n\n# Make it executable\nchmod +x ~/.local/bin/xfer\n```\nThen add `~/.local/bin` to your `PATH` if it's not already there:\n\n#### For Bash users (add to `~/.bashrc`):\n```bash\necho 'export PATH=\"$HOME/.local/bin:$PATH\"' \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n```\n\n#### For Zsh users (add to `~/.zshrc`):\n```bash\necho 'export PATH=\"$HOME/.local/bin:$PATH\"' \u003e\u003e ~/.zshrc\nsource ~/.zshrc\n```\n\n### Option 2: System-wide installation\nThis requires _admin_ privileges but installs the tool for all users:\n```bash\n# Copy to a location that's already in your PATH\nsudo cp target/release/xfer /usr/local/bin/\n\n# Make it executable\nsudo chmod +x /usr/local/bin/xfer\n```\n\n#### Verifying the Installation\nConfirm that the installation worked:\n```bash\n# Check if the command is recognized\nwhich xfer\n\n# Should output something like:\n# /home/yourusername/.local/bin/xfer\n# or\n# /usr/local/bin/xfer\n\n# Verify it runs\nxfer --version\n```\nNow you can run `xfer` commands from any directory:\n```bash\n# List configured servers\nxfer server list\n\n# Transfer files\nxfer send myfile.txt myserver:/path/to/destination/\n```\n\n### Uninstalling\nIf you need to remove the tool later:\n```bash\n# If installed in ~/.local/bin\nrm ~/.local/bin/xfer\n\n# If installed in /usr/local/bin\nsudo rm /usr/local/bin/xfer\n```\n\n### Basic Commands\n```bash\n# Send a local file to a remote server\nxfer send file.txt prod:/home/user/documents/\n\n# Download a file from a remote server\nxfer get prod:/var/log/nginx/access.log ./logs/\n\n# Sync a directory to a remote server\nxfer sync ./project/ staging:/var/www/html/\n\n# List files on a remote server\nxfer list prod:/var/log/\n```\n\n### Advanced Features\n1. **Smart tool selection**: The tool automatically uses:\n   - `rsync` for directory transfers (better for large directories)\n   - `scp` for single file transfers\n   - `ssh` for listing directories\n\n2. **Credential management**: You never need to specify your SSH key again; it's stored in the config.\n\n3. **Server management**:\n   ```bash\n   xfer server add       # Add a new server\n   xfer server list      # List configured servers\n   ```\n\nThe tool is designed to be easily extensible too. You can add new commands or features as your needs grow.\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.\n\nBuilt with ❤️ by [Mut](https://www.mutasim.top/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutasim77%2Fxfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmutasim77%2Fxfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmutasim77%2Fxfer/lists"}