arkv 1.0.1

A fast, no-frills file archiving tool that copies files to remote servers via SFTP
arkv-1.0.1 is not a library.

arkv

A fast, no-frills file archiving tool that copies files to remote servers via SFTP.

Features

  • 🚀 Fast SFTP transfers using SSH key or password authentication
  • 📁 Supports both individual files and entire directories
  • 📊 Real-time progress indicators with spinners and progress bars
  • 🔧 Simple one-time setup
  • 💾 Supports multiple remote destinations

Installation

Install from crates.io:

cargo install arkv

Or build from source:

cargo build --release

The binary will be at target/release/arkv. You can copy it to your PATH:

cp target/release/arkv /usr/local/bin/

Quick Start

First time setup:

arkv --setup

This will guide you through:

  1. Locating your SSH key (default: ~/.ssh/id_ed25519)
  2. Adding remote destinations (name, host, username, remote path, optional password)

Usage

Upload a file:

arkv cool-picture.png

Upload a folder:

arkv my_files/tuesday/

Choose destination interactively (when multiple destinations are configured):

arkv document.pdf --interactive

Re-run setup:

arkv --setup

Show help:

arkv --help

Configuration

Configuration is stored at ~/.config/arkv/config.toml

Example config:

ssh_key_path = "/Users/username/.ssh/id_ed25519"

[[destinations]]
name = "production"
host = "example.com"
username = "deploy"
remote_path = "/var/www/uploads"

[[destinations]]
name = "backup"
host = "192.168.1.100"
username = "user"
remote_path = "/home/user/backups"
password = "optional_password"

How It Works

  1. Connects to remote server via SSH (port 22)
  2. Uses SFTP protocol for file transfers
  3. Automatically creates remote directories if they don't exist
  4. Preserves folder structure when uploading directories
  5. Shows progress with spinners (single files) or progress bars (folders)

License

MIT