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

Roadmap

Planned

FeatureDescriptionPriority
GUI Config EditingStructured editing of the config in the GUI, currently only via YAMLHigh
Linux GUI packagingNative .deb/.rpm packages and a repository for streamlined installationHigh
Windows GUI packagingMSI installer and/or winget package for first-class Windows supportHigh
Snapshot filteringBy host, tag, path, date rangesMedium
Async I/ONon-blocking storage operationsMedium
JSON output modeStructured JSON output for all CLI commands to enable scripting and integration with monitoring toolsMedium
Per-token permissionsExpand permissions from full/append-only to also limit reading and maintenanceMedium

Implemented

FeatureDescription
Pack filesChunks grouped into ~32 MiB packs with dynamic sizing, separate data/tree packs
Retention policieskeep_daily, keep_weekly, keep_monthly, keep_yearly, keep_last, keep_within
snapshot delete commandRemove individual snapshots, decrement refcounts
prune commandApply retention policies, remove expired snapshots
check commandStructural integrity + optional --verify-data for full content verification
Type-safe PackIdNewtype for pack file identifiers with storage_key()
compact commandRewrite packs to reclaim space from orphaned blobs after delete/prune
REST serveraxum-based backup server with auth, append-only, quotas, freshness tracking, lock TTL, server-side compaction
REST backendStorageBackend over HTTP with range-read support
Tiered dedup indexBackup dedup via session map + xor filter + mmap dedup cache, with safe fallback to HashMap dedup mode
Restore mmap cacheIndex-light restore planning via local restore cache; fallback to filtered full-index loading when needed
Incremental index updatesave_state() fast path merges IndexDelta into local full-index cache and serializes index from cache
Bounded parallel pipelineByte-budgeted pipeline (pipeline_buffer_mib) with bounded worker/upload concurrency
mmap-backed pack assemblyData-pack assembly uses mmap-backed temp files (with fallback chain) to reduce heap residency under memory pressure
cache_dir overrideConfigurable root for file cache, dedup/restore/full-index caches, and preferred mmap temp-file location
Parallel transformsrayon-backed compression/encryption within the bounded pipeline
break-lock commandForced stale-lock cleanup for backend/object lock recovery
Compact pack health accountingCompact analysis reports/tracks corrupt and orphan packs in addition to reclaimable dead bytes
File-level cacheinode/mtime/ctime skip for unchanged files — avoids read, chunk, compress, encrypt. Keys are 16-byte BLAKE2b path hashes (with transparent legacy migration). Stored locally under the per-repo cache root (default platform cache dir + vykar, or cache_dir override).
Daemon modevykar daemon runs scheduled backup→prune→compact→check cycles with two-stage signal handling
Server-side pack verificationvykar check delegates pack integrity checks to vykar-server when available; --distrust-server opts out
Upload integrityREST PUT includes X-Content-BLAKE2b header; server verifies during streaming write
vykar-protocol crateShared wire-format types and pack/protocol version constants between client and server
Type-safe SnapshotIdNewtype for snapshot identifiers with storage_key() (ManifestId dropped — manifest is a singleton)