Skip to content

hbackup is a simple, high-performance, cross-platform backup tool written in Rust. It is designed to be fast, efficient, and easy to use, with a focus on performance and reliability.

License

Notifications You must be signed in to change notification settings

asthetik/hbackup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hbackup

CI Security Crates.io Crates.io MIT License

English | 简体中文

hbackup is a simple, high-performance, cross-platform backup tool written in Rust. It is designed to be fast, efficient, and easy to use, with a focus on performance, reliability, and flexible backup management.


Features

  • 🚀 Fast and simple file/directory backup via CLI
  • ⚡️ Asynchronous multithreaded backup for higher performance, especially with large or multiple files
  • 🖥️ Cross-platform: macOS, Linux, Windows
  • 📝 Configuration and task management via TOML in user config directory
  • 🔄 Add, edit, delete, list and run backup jobs easily
  • 🗜️ Compression support: gzip, zip, sevenz, zstd, bzip2, xz, lz4, and tar for files and directories
  • 🛠️ Config file backup, reset, and rollback
  • 🧩 Extensible: easy to add new features

Quick Start

1. Install

cargo install hbackup

2. Add one or more jobs

bk add ~/my_path1/my_file1.txt ~/back
# add a job with compression
bk add ~/my_path2/my_dir ~/back -c gzip
bk add ~/my_path3/my_dir ~/back -c zip -l best
# add a job with mirroring (delete files in target that are not in source)
bk add ~/my_path4/my_dir ~/back -m mirror

3. List all jobs

bk list

4. Run backup jobs

  • Run all jobs:

    bk run
  • Run multiple jobs by ID:

    bk run -i 1
    bk run -i 1,2
    # or using long form
    bk run --id 1,2
  • Run a one-time backup (without saving as a job):

    bk run ~/my_path/myfile.txt ~/back

    You can also specify compression for a one-time backup:

    bk run ~/my_path/mydir ~/back -c gzip
    bk run ~/my_path/mydir ~/back -c zip -l best

5. Delete jobs

  • Delete multiple jobs by ID:

    bk delete 1
    bk delete 1,2
  • Delete all jobs:

    bk delete -a
    # or using long form
    bk delete -all

6. Edit a job

Update the source and/or target of a job by its ID:

bk edit 1 --source ~/newfile.txt --target ~/newbackup/

7. Manage configuration file

  • Show configuration file path:

    bk config
  • Backup configuration file:

    bk config --copy
  • Reset configuration file (auto-backup before reset):

    bk config --reset
  • Rollback to the last backed up configuration file:

    bk config --rollback

Compression Support

You can specify compression format (gzip, zip, sevenz, zstd, bzip2lz4 or tar) when adding or running jobs:

# Add a job with gzip compression
bk add ~/file.txt ~/back --compression gzip --level fastest
# or a short command line
bk add ~/file.txt ~/back -c gzip -l fastest

# One-time backup with compression
bk run ~/my_path/mydir ~/back -c gzip
  • Compression works for both files and directories.
  • Output files will have gz, zip, 7z, zst, bzip2, xz, lz4, tar extensions.
  • If no compression is specified, files are copied as-is.

Command Reference

Command Description
bk add Add a new backup job
bk list List all backup jobs
bk run Run all jobs, a job by ID, or a one-time backup
bk delete Delete a job by ID or delete all jobs
bk edit Edit a job's source/target by ID
bk config Show, backup, reset, or rollback config file

Run bk <command> --help for detailed options.


Configuration File Location

  • macOS/Linux: ~/.config/hbackup/config.toml
  • Windows: C:\Users\<User>\AppData\Roaming\hbackup\config.toml

A backup of the config file is automatically created before resetting.


Error Handling

  • All errors are reported with clear messages.
  • If you run bk without a command, you'll see:
bk requires at least one command to execute. See 'bk --help' for usage.

License

MIT

About

hbackup is a simple, high-performance, cross-platform backup tool written in Rust. It is designed to be fast, efficient, and easy to use, with a focus on performance and reliability.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •