github borgbase/vykar v0.16.0

3 hours ago

Bug fixes

  • Backup performance on iCloud-heavy macOS trees: skip getxattr on dataless inodes. The walker was round-tripping to fileproviderd for every cloud-managed file, serializing the pipeline; dataless xattrs are already supplied by the parent snapshot or skipped entirely. (#133)
  • GUI: surface previously-swallowed config-read and tmp-cleanup errors via the in-app log channel instead of let _ = dropping them silently.
  • Linux quota syscalls: switch FFI pointer casts to ptr::from_mut to satisfy Rust 1.95 clippy::pedantic on Linux-only code paths.

Reliability & code quality

  • Crypto: MasterKey::generate now propagates OsRng failures instead of panicking — relevant for sandboxed/container environments where kernel entropy may be temporarily unavailable.
  • Storage: document that synchronous StorageBackend methods (notably SFTP) may block on a Tokio runtime internally and must not be invoked from inside an async context.
  • Workspace lints: tighten clippy policy across all crates — deny unwrap_used, panic, panic_in_result_fn, cast_precision_loss, unsafe_code (per-module opt-in with SAFETY comments), enable pedantic with a focused allowlist. ~94 files adapted; lossy as-casts replaced with checked integer math.
  • Types: encapsulate ChunkId / PackId / SnapshotId newtypes behind from_bytes() / as_bytes(); drop the unused VykarError::Storage variant.
  • CLI: split main.rs into lib.rs + helpers, introduce a thiserror-based CliError, group run_backup arguments into BackupRunOpts.
  • Core: gate BudgetGuard and dead helpers on cfg(test), drop avoidable clones in pending-index recovery, document blocking sleeps in session/lock helpers.
  • GUI: refactor UI state models; split megamodules into focused submodules.

Infrastructure

  • CI now runs lint, test, and docs on pull requests, not just post-merge.

Downloads

Platform Asset
Linux x86_64 (glibc) vykar-v0.16.0-x86_64-unknown-linux-gnu.tar.gz
Linux x86_64 (musl, static) vykar-v0.16.0-x86_64-unknown-linux-musl.tar.gz
Linux aarch64 (glibc) vykar-v0.16.0-aarch64-unknown-linux-gnu.tar.gz
Linux aarch64 (musl, static) vykar-v0.16.0-aarch64-unknown-linux-musl.tar.gz
macOS Apple Silicon vykar-v0.16.0-aarch64-apple-darwin.tar.gz
Windows x86_64 vykar-v0.16.0-x86_64-pc-windows-msvc.zip
GUI (Linux AppImage) vykar-gui-v0.16.0-x86_64.AppImage

SHA256 checksums are attached as SHA256SUMS.

Full changelog: v0.15.0...v0.16.0

Don't miss a new vykar release

NewReleases is sending notifications on new releases.