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

Vykar 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.

Do not use for production backups yet, but do test it along other backup tools.

Features

  • Storage backends – local filesystem, S3 (any compatible provider), SFTP, dedicated REST server
  • Encryption with AES-256-GCM or ChaCha20-Poly1305 (auto-selected) and Argon2id key derivation
  • YAML-based configuration with multiple repositories, hooks, and command dumps for monitoring and database backups
  • Deduplication via FastCDC content-defined chunking with a memory-optimized engine (tiered dedup index + mmap-backed pack assembly)
  • Compression with LZ4 or Zstandard
  • Built-in WebDAV and desktop GUI to browse and restore snapshots
  • REST server with append-only enforcement, quotas, and server-side compaction
  • Concurrent multi-client backups – multiple machines back up to the same repository simultaneously; only the brief commit phase is serialized
  • Built-in scheduling via vykar daemon – runs backup cycles on a configurable interval (no cron needed)
  • Rate limiting for CPU, disk I/O, and network bandwidth
  • Cross-platform – Linux, macOS, and Windows

Benchmarks

Vykar is the fastest tool for both backup and restore, with the lowest CPU cost, while maintaining competitive memory usage.

Backup Tool Benchmark

All benchmarks were run 5x on the same idle Intel i7-6700 CPU @ 3.40GHz machine with 2x Samsung PM981 NVMe drives, with results averaged across all runs. Compression settings were chosen to keep resulting repository sizes comparable. The sample corpus is a mix of small and large files with varying compressibility. See detailed results or our benchmark script for full details.

Comparison

AspectBorgResticRusticVykar
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, rcloneLocal, S3, SFTP, RESTLocal, S3, SFTP, REST + vykar-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: pack file design and architectural references from a mature Rust backup tool.
  • Name: From Latin vicarius (“substitute, stand-in”) — because a backup is literally a substitute for lost data.

Get Started

Follow the Quick Start guide to install Vykar, create a config, and run your first backup in under 5 minutes.

Once you’re up and running: