- Rust 87.5%
- Python 8.6%
- Shell 2%
- Slint 1.4%
- Nix 0.4%
Bundle shared libraries (libxdo, GTK3, etc.) into a self-contained AppImage using linuxdeploy, so the prebuilt binary no longer depends on the host distro's library versions. - Add .desktop file and build script (scripts/build-appimage.sh) - Add build-appimage CI job that reuses the build-linux artifact - CI verifies AppDir contract and library bundling before upload - Update Linux install docs to recommend AppImage with FUSE fallback Closes #91 |
||
|---|---|---|
| .agents | ||
| .cargo | ||
| .github/workflows | ||
| .nix | ||
| crates | ||
| docs | ||
| fuzz | ||
| scripts | ||
| .claude | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| Dockerfile | ||
| Dockerfile.apprise | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| Makefile | ||
| prek.toml | ||
| README.md | ||
| shell.nix | ||
| testing.md | ||
| vykar.example.yaml | ||
Vykar Backup
A fast, encrypted, deduplicated backup tool written in Rust centered around a friendly YAML config file.
Inspired by BorgBackup, Borgmatic, Restic, and Rustic. Vykar uses its own on-disk format and is not compatible with Borg or Restic repositories.
⚠️ Don't 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) - Resource limits for worker threads, backend connections, and upload/download bandwidth
- Cross-platform — Linux, macOS, and Windows
Benchmarks
Vykar leads in both speed and CPU efficiency, while maintaining competitive memory usage.
All benchmarks were run on the same idle Intel i7-6700 CPU @ 3.40GHz machine with 2x Samsung PM981 NVMe drives. 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 our benchmark script for full details.
Quick start
curl -fsSL https://vykar.borgbase.com/install.sh | sh
Or download the latest release for your platform from the releases page. A Docker image is also available.
# Generate a starter config and edit it
vykar config
# Initialize the repository and run a backup
vykar init
vykar backup
# List snapshots
vykar list
See the full documentation for storage backends, restore, maintenance, and more.
Desktop UI
vykar-gui is a Slint-based desktop app that uses vykar-core directly (it does not shell out to the CLI).
- Run backups on demand
- List snapshots and browse snapshot contents
- Extract snapshot contents
- Run in the system tray with periodic background backups
- Uses
vykar.yamlas the source of truth and auto-reloads config changes
Periodic GUI scheduling is configured in vykar.yaml via:
schedule:
enabled: true
every: "24h"
on_startup: false
jitter_seconds: 0
passphrase_prompt_timeout_seconds: 300
Security
To report a security vulnerability, please email hello@borgbase.com.
License
GNU General Public License v3.0
