Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

V'Ger Backup Logo

V’Ger is a fast, encrypted, deduplicated backup tool written in Rust. It’s centered around a simple YAML config format and includes a desktop GUI and webDAV server to browse snapshots. More about design goals.

⚠️ Don’t use for production backups yet, but do test it along other backup tools.

Features

  • Deduplication via FastCDC content-defined chunking
  • Compression with LZ4 (default), Zstandard, or none
  • Encryption with AES-256-GCM or ChaCha20-Poly1305 (auto-selected) and Argon2id key derivation
  • Storage backends — local filesystem, S3-compatible storage, SFTP
  • YAML-based configuration with multiple repositories, hooks, and command dumps
  • REST server with append-only enforcement, quotas, and server-side compaction
  • Built-in WebDAV and desktop GUI to browse and restore snapshots
  • Rate limiting for CPU, disk I/O, and network bandwidth

Benchmarks

V’Ger achieves the best speed and throughput of any comparable backup tool, while using fewer CPU cycles.

Backup Tool Benchmark

See our e2e testing skill for full benchmark details. All benchmarks were run on the same Intel i7-6700 CPU @ 3.40GHz machine with 2x Samsung PM981 NVMe. Compression and resulting repository sizes comparable. Sample corpus is a mix of files including the Linux kernel, a Wikipedia dump and an Ubuntu ISO.

Comparison

AspectBorgResticRusticV’Ger
ConfigurationCLI (YAML via Borgmatic)CLI (YAML via ResticProfile)TOML config fileYAML config with env-var expansion
Browse snapshotsFUSE mountFUSE mountFUSE mountBuilt-in WebDAV + web UI
Command dumpsVia Borgmatic (database-specific)NoneNoneNative (generic command capture)
HooksVia BorgmaticVia ResticProfileNativeNative (per-command before/after)
Rate limitingNoneUpload/download bandwidthCPU, disk I/O, and network bandwidth
Dedicated serverSSH (borg serve)rest-server (append-only)rustic_serverREST server with append-only, quotas, server-side compaction
Desktop GUIVorta (third-party)Third-party (Backrest)NoneBuilt-in
SchedulingVia BorgmaticVia ResticProfileExternal (cron/systemd)Built-in
LanguagePython + CythonGoRustRust
ChunkerBuzhash (custom)RabinRabin (Restic-compat)FastCDC
EncryptionAES-CTR+HMAC / AES-OCB / ChaCha20AES-256-CTR + Poly1305-AESAES-256-CTR + Poly1305-AESAES-256-GCM / ChaCha20-Poly1305 (auto-select at init)
Key derivationPBKDF2 or Argon2idscryptscryptArgon2id
SerializationmsgpackJSON + Protocol BuffersJSON + Protocol Buffersmsgpack
Storageborgstore + SSH RPCLocal, S3, SFTP, REST, rcloneOpenDAL (local, S3, many more)OpenDAL (local, S3, SFTP) + vger-server
Repo compatibilityBorg v1/v2/v3Restic formatRestic-compatibleOwn format

Inspired by

  • BorgBackup: architecture, chunking strategy, repository concept, and overall backup pipeline.
  • Borgmatic: YAML configuration approach, pipe-based database dumps.
  • Rustic: storage backend abstraction via Apache OpenDAL, pack file design, and architectural references from a mature Rust backup tool.
  • V’Ger from Star Trek: The Motion Picture — a probe that assimilated everything it encountered and returned as something far more powerful.

Usage

Reference