Skip to content

Vykar

v0.17.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

Published 1mo Backup & Recovery
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

backup rust sysadmin

Affected surfaces

breaking_upgrade

ReleasePort's take

Moderate signal
editorial:auto 1mo

Snapshots in v0.17.0 now use format version 1; older binaries cannot read them.

Why it matters: All deployments must upgrade to the new binary before creating or restoring snapshots, as pre‑v0.17.0 tools will fail on version 1 files.

Summary

AI summary

Snapshots now use format version 1; older binaries cannot read them, requiring coordinated upgrades.

Changes in this release

Breaking High

Snapshots now use format version 1; older binaries cannot read them.

Snapshots now use format version 1; older binaries cannot read them.

Source: llm_adapter@2026-06-10

Confidence: high

Feature Medium

Hard links are preserved across backup and restore, regrouping members by source (dev, ino).

Hard links are preserved across backup and restore, regrouping members by source (dev, ino).

Source: llm_adapter@2026-06-10

Confidence: high

Feature Medium

Non‑UTF8 file paths are preserved byte‑faithfully on Unix during backup and restore.

Non‑UTF8 file paths are preserved byte‑faithfully on Unix during backup and restore.

Source: llm_adapter@2026-06-10

Confidence: high

Feature Medium

Restore now applies uid/gid (when run as root), directory mtimes, and symlink mtimes with a defined ordering.

Restore now applies uid/gid (when run as root), directory mtimes, and symlink mtimes with a defined ordering.

Source: llm_adapter@2026-06-10

Confidence: high

Feature Medium

S3 multipart upload is used for packs larger than 16 MiB, allowing independent part retries on connection reset.

S3 multipart upload is used for packs larger than 16 MiB, allowing independent part retries on connection reset.

Source: llm_adapter@2026-06-10

Confidence: high

Feature Medium

Special files (FIFOs, sockets, device nodes) now emit a per‑entry warning instead of being dropped silently during backup.

Special files (FIFOs, sockets, device nodes) now emit a per‑entry warning instead of being dropped silently during backup.

Source: llm_adapter@2026-06-10

Confidence: high

Feature Medium

GUI shows a clickable “(update)” link when a newer release is available.

GUI shows a clickable “(update)” link when a newer release is available.

Source: llm_adapter@2026-06-10

Confidence: high

Bugfix Medium

Restore now fsyncs data and inode before rename, and the destination directory after rename, eliminating unflushed‑content windows.

Restore now fsyncs data and inode before rename, and the destination directory after rename, eliminating unflushed‑content windows.

Source: llm_adapter@2026-06-10

Confidence: high

Bugfix Medium

A killed restore no longer leaves a temporary directory that blocks subsequent attempts; temp dirs are safely swept on the next run.

A killed restore no longer leaves a temporary directory that blocks subsequent attempts; temp dirs are safely swept on the next run.

Source: llm_adapter@2026-06-10

Confidence: high

Full changelog

⚠️ Breaking Changes — Coordinated Upgrade Required

This release stamps snapshots with format version 1 to support non-UTF8 path fidelity. Compatibility is backward-readable but not forward-compatible:

  • New 0.17.0 binaries read all existing repositories and older snapshots.
  • Older binaries cannot read snapshots written by 0.17.0 — they fail cleanly with a decode error, not silent corruption.

If multiple machines share a repository, upgrade them all at the same time. An older binary restoring a snapshot written by 0.17.0 is the direction that is not supported. Existing repositories and old snapshots remain fully readable by this release.

Features

  • Hard links: regular files with multiple links are now preserved across backup and restore. Each member records its source (dev, ino); restore regroups members and relinks them, with the relink path hardened against malformed-snapshot attacks (authoritative chunk-id fingerprint, parent-containment checks, O_EXCL creation).
  • Non-UTF8 paths: filenames and symlink targets that are not valid UTF-8 are now preserved byte-faithfully through backup and restore on Unix. Snapshots additively gain a format_version discriminator (see Breaking Changes).
  • Restore metadata: restore now applies uid/gid (when run as root), directory mtimes, and symlink mtimes, with a uniform chown → xattrs → chmod → mtime ordering so restored caps/setuid and read-only modes survive.
  • S3 multipart upload: packs larger than 16 MiB upload via the S3 multipart API, so a connection reset mid-transfer costs one 16 MiB part instead of restarting the whole pack. Each part is retried independently. We recommend an AbortIncompleteMultipartUpload lifecycle rule (#154).
  • Special files: FIFOs, sockets, and device nodes that vykar cannot represent now emit a per-entry warning instead of being dropped silently. Warn-only — the backup still succeeds.
  • GUI: notifies you with a clickable "(update)" link when a newer release is available.

Bug Fixes

  • Restore durability: restored files are now fsynced (data + inode) before rename, and the destination directory is fsynced after — closing a window where a crash could leave correct-sized files with unflushed contents.
  • Restore retry: a killed restore no longer leaves a temp dir that blocks the next attempt; reserved temp dirs are swept safely on the following run.

Documentation

  • Corrected crash-orphan reclamation guidance (vykar check --repair) in the architecture and maintenance docs, with a regression test.

Updating

To update to the latest version, run:

curl -fsSL https://vykar.borgbase.com/install.sh | sh

See the quickstart guide for other install options.

Downloads

| Platform | Artifact |
|---|---|
| Linux x86_64 (gnu) | vykar-v0.17.0-x86_64-unknown-linux-gnu.tar.gz |
| Linux x86_64 (musl) | vykar-v0.17.0-x86_64-unknown-linux-musl.tar.gz |
| Linux aarch64 (gnu) | vykar-v0.17.0-aarch64-unknown-linux-gnu.tar.gz |
| Linux aarch64 (musl) | vykar-v0.17.0-aarch64-unknown-linux-musl.tar.gz |
| macOS aarch64 | vykar-v0.17.0-aarch64-apple-darwin.tar.gz |
| Windows x86_64 | vykar-v0.17.0-x86_64-pc-windows-msvc.zip |
| GUI (AppImage) | vykar-gui-v0.17.0-x86_64.AppImage |

SHA256 checksums are attached to this release.

Breaking Changes

  • Snapshots written by vykar 0.17.0 (format_version 1) are unreadable by binaries older than 0.17.0; coordinated upgrade of all machines accessing a shared repository is required.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Vykar

Get notified when new releases ship.

Sign up free

About Vykar

Fast, encrypted, deduplicated backups

All releases →

Related context

Beta — feedback welcome: [email protected]