Chunyu33/viap

Windows application management and data migration tool.

Rust

1,143

196 commits

updated Oct 9, 2026

See the code

README

Viap

简体中文

Viap logo

Windows application and data migration tool

Move applications and selected data to another drive while keeping their original paths available.

Viap is a Windows desktop application built with Tauri, React, TypeScript, and Rust. It uses NTFS directory junctions or symbolic links to redirect storage without changing application paths.

Features

  • Migrate installed applications to another local drive and restore them later.
  • Migrate system folders, selected application data folders, and custom folders.
  • Check running processes and file locks before migration or restore.
  • Verify copied data before switching the original path to a junction or link.
  • Keep migration history with restore, link health checks, import, and export.
  • Mirror migration data to a separate folder and rebuild lost history by scanning directory junctions.
  • Uninstall applications and scan or clean related leftovers, with running-process handling, a before/after comparison report and matching services, drivers or scheduled tasks.
  • Show disk usage, application snapshots, lazy-loaded icons, and background scan progress.
  • Detect HDD cold-start cases and let users manually load slow application-data directories.
  • Support light and dark themes, an optional liquid-glass appearance, font-size settings, portable mode, and WebView2 offline installers.
  • Verify the running executable against the official GitHub Release signature.

Safety Notes

Viap is designed to keep a usable data copy until the migration switch has been verified. However, no file operation is completely safe against hardware failure or unexpected power loss. Back up important data before migrating.

  • Run Viap with administrator privileges when Windows requires permission to create links or access protected folders.
  • Close the application being migrated. Viap performs process and lock checks, but some software may use services, drivers, or memory-mapped files.
  • Do not migrate the entire AppData, Local, or Roaming directory. Select data folders for one application at a time.
  • Software with license binding, system services, kernel drivers, self-repair, or hard-coded paths may not work correctly after redirection.
  • Do not manually delete the target directory while a migration record is active. Restore the application first when possible.
  • Microsoft Store, UWP, MSIX, system components, browser installations, and GPU drivers should be handled by Windows or their vendor tools instead.
  • Use local NTFS drives. Network drives and unsupported file systems are not migration targets.

Portable and Installer Builds

  • Standard installer: installed application with update support.
  • WebView2 offline installer: includes the WebView2 runtime for systems that cannot download it during installation.
  • Portable ZIP: extract and run without installation. User data is stored beside the application in data; portable builds cannot update themselves, but they do check for new versions and will point you to a manual download from GitHub Releases or Quark Drive.

On first launch, the portable build can copy missing data from an existing Viap installation. Existing installation data is not deleted.

Data and Settings

  • Installed builds normally use %APPDATA%\viap.
  • Portable builds normally use the application directory's data folder.
  • The Settings page can change Viap's data directory and copies managed data before switching to the new location.
  • Themes, the liquid-glass appearance, font size, default migration paths, recycle-bin preference, and scan settings are persisted with the user data.

Integrity Verification

Open Settings and choose Verify file integrity. Viap downloads the signature for the current release from GitHub and verifies the running executable with the official public key.

  • A success message is shown only when the signature and file content match exactly.
  • A signature mismatch indicates that the file may have been modified.
  • Network failures, missing signatures, and malformed signatures are reported separately and are not treated as tampering.

Development

Requirements

  • Windows 10 or later
  • Node.js 18 or later
  • Rust and the Tauri prerequisites

Install and Run

npm install
npm run tauri dev

Build and Verify

npm run build
cargo check --manifest-path src-tauri/Cargo.toml --no-default-features
git diff --check

Generate Icons

The icon source is src-tauri/icons/icon.svg. The scripts generate the PNG sizes used by the application, including 48x48.png, and add 32, 48, 128, and 256 pixel layers to icon.ico.

node scripts/generate-icons.js
node scripts/generate-ico.js

Reporting Issues

Please search existing issues first, then describe one problem per issue with a clear, factual title. Following the core principles of How To Ask Questions The Smart Way helps issues get understood and resolved faster:

  • Bug reports must include the exact reproduction steps, expected and actual behavior, Viap version, Windows version, selected interface language, and relevant logs or screenshots.
  • Include the smallest reproducible example when possible. Redact personal paths, usernames, tokens, and other sensitive information before posting logs or screenshots.
  • Feature requests should explain the problem and intended outcome, rather than only demanding a specific implementation.
  • Keep the discussion concise, respectful, and open to clarification. Please avoid assumptions, insults, or orders; a clear report with useful context is far more effective.
  • Low-quality issues (e.g., arrogant questions, pure complaints, no context, no reproduction steps) will not be processed.

License

MIT License. See LICENSE.

Contributing

Issues and pull requests are welcome. When reporting a migration or scan problem, include the application name, source and target drive types, and the visible error message. Do not include private paths or personal data.

Chunyu33/viap

Windows application management and data migration tool.

Rust

1,143

196 commits

updated Oct 9, 2026

See the code

README

Viap

简体中文

Viap logo

Windows application and data migration tool

Move applications and selected data to another drive while keeping their original paths available.

Viap is a Windows desktop application built with Tauri, React, TypeScript, and Rust. It uses NTFS directory junctions or symbolic links to redirect storage without changing application paths.

Features

  • Migrate installed applications to another local drive and restore them later.
  • Migrate system folders, selected application data folders, and custom folders.
  • Check running processes and file locks before migration or restore.
  • Verify copied data before switching the original path to a junction or link.
  • Keep migration history with restore, link health checks, import, and export.
  • Mirror migration data to a separate folder and rebuild lost history by scanning directory junctions.
  • Uninstall applications and scan or clean related leftovers, with running-process handling, a before/after comparison report and matching services, drivers or scheduled tasks.
  • Show disk usage, application snapshots, lazy-loaded icons, and background scan progress.
  • Detect HDD cold-start cases and let users manually load slow application-data directories.
  • Support light and dark themes, an optional liquid-glass appearance, font-size settings, portable mode, and WebView2 offline installers.
  • Verify the running executable against the official GitHub Release signature.

Safety Notes

Viap is designed to keep a usable data copy until the migration switch has been verified. However, no file operation is completely safe against hardware failure or unexpected power loss. Back up important data before migrating.

  • Run Viap with administrator privileges when Windows requires permission to create links or access protected folders.
  • Close the application being migrated. Viap performs process and lock checks, but some software may use services, drivers, or memory-mapped files.
  • Do not migrate the entire AppData, Local, or Roaming directory. Select data folders for one application at a time.
  • Software with license binding, system services, kernel drivers, self-repair, or hard-coded paths may not work correctly after redirection.
  • Do not manually delete the target directory while a migration record is active. Restore the application first when possible.
  • Microsoft Store, UWP, MSIX, system components, browser installations, and GPU drivers should be handled by Windows or their vendor tools instead.
  • Use local NTFS drives. Network drives and unsupported file systems are not migration targets.

Portable and Installer Builds

  • Standard installer: installed application with update support.
  • WebView2 offline installer: includes the WebView2 runtime for systems that cannot download it during installation.
  • Portable ZIP: extract and run without installation. User data is stored beside the application in data; portable builds cannot update themselves, but they do check for new versions and will point you to a manual download from GitHub Releases or Quark Drive.

On first launch, the portable build can copy missing data from an existing Viap installation. Existing installation data is not deleted.

Data and Settings

  • Installed builds normally use %APPDATA%\viap.
  • Portable builds normally use the application directory's data folder.
  • The Settings page can change Viap's data directory and copies managed data before switching to the new location.
  • Themes, the liquid-glass appearance, font size, default migration paths, recycle-bin preference, and scan settings are persisted with the user data.

Integrity Verification

Open Settings and choose Verify file integrity. Viap downloads the signature for the current release from GitHub and verifies the running executable with the official public key.

  • A success message is shown only when the signature and file content match exactly.
  • A signature mismatch indicates that the file may have been modified.
  • Network failures, missing signatures, and malformed signatures are reported separately and are not treated as tampering.

Development

Requirements

  • Windows 10 or later
  • Node.js 18 or later
  • Rust and the Tauri prerequisites

Install and Run

npm install
npm run tauri dev

Build and Verify

npm run build
cargo check --manifest-path src-tauri/Cargo.toml --no-default-features
git diff --check

Generate Icons

The icon source is src-tauri/icons/icon.svg. The scripts generate the PNG sizes used by the application, including 48x48.png, and add 32, 48, 128, and 256 pixel layers to icon.ico.

node scripts/generate-icons.js
node scripts/generate-ico.js

Reporting Issues

Please search existing issues first, then describe one problem per issue with a clear, factual title. Following the core principles of How To Ask Questions The Smart Way helps issues get understood and resolved faster:

  • Bug reports must include the exact reproduction steps, expected and actual behavior, Viap version, Windows version, selected interface language, and relevant logs or screenshots.
  • Include the smallest reproducible example when possible. Redact personal paths, usernames, tokens, and other sensitive information before posting logs or screenshots.
  • Feature requests should explain the problem and intended outcome, rather than only demanding a specific implementation.
  • Keep the discussion concise, respectful, and open to clarification. Please avoid assumptions, insults, or orders; a clear report with useful context is far more effective.
  • Low-quality issues (e.g., arrogant questions, pure complaints, no context, no reproduction steps) will not be processed.

License

MIT License. See LICENSE.

Contributing

Issues and pull requests are welcome. When reporting a migration or scan problem, include the application name, source and target drive types, and the visible error message. Do not include private paths or personal data.

Significant stargazers

gaboolic

197 followers · starred Jul 2026

david082321

181 followers · starred Sep 2026