Thanks to visit codestin.com
Credit goes to lib.rs

#archive #file-transfer #sftp #backup

app arkv

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

2 stable releases

1.0.1 Oct 27, 2025

#1227 in Filesystem

MIT license

26KB
550 lines

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

Dependencies

~9–21MB
~246K SLoC