Skip to content

RadNotRed/ShadowSync

Repository files navigation

ShadowSync

ShadowSync is a cross-platform tray app that mirrors selected USB folders to your computer using a shadow cache for fast incremental syncs.

📌 What it is

ShadowSync is meant for a straightforward removable-drive workflow:

  • Plug in a USB drive
  • Pull the latest changes onto your computer
  • Work from the local folder instead of the drive
  • Push back to the USB only when you want to
  • Eject safely from the tray when you're done

⚙️ What it does

  • Pull sync with either USB -> shadow cache -> local folder or direct USB -> local folder
  • Optional push-back with either local folder -> shadow cache -> USB or direct local folder -> USB
  • Incremental syncing that skips unchanged files
  • Per-job cache mode with optional custom shadow roots
  • Tray controls for sync, updates, logs, folders, setup, and eject
  • Native Rust setup wizard
  • Single-instance protection and config recovery
  • Local manifest state plus a USB-side sync marker for safer incremental runs
  • Windows, macOS, and Linux release builds

🚀 Quick start

  1. Download the right release for your platform from the GitHub Releases page.
  2. Launch ShadowSync and let it create its local app data files.
  3. Open the setup wizard from the tray and choose the actual USB source folder(s) plus the local target folder(s).
  4. Run Sync from USB now to pull files onto the machine.
  5. Use Sync to USB now only when you want to publish changes back to the drive.

📚 Documentation

This README stays short on purpose. Use the docs for setup details, behavior, and troubleshooting:

📁 Project links

💻 Development

cargo test --locked
cargo wizard
cargo build --release

To open only the setup UI without starting the tray workflow:

cargo wizard

For a release-mode UI run:

cargo wizard-release

For the closest thing to a native Rust "dev server" for the wizard, use cargo-watch so the UI rebuilds and relaunches on every save:

cargo install cargo-watch
cargo watch-wizard

To keep tests running while you edit:

cargo watch-tests

These aliases are development-only helpers from .cargo/config.toml. They do not add runtime or release bloat.

For docs previews:

python -m pip install -r requirements-docs.txt
python -m mkdocs serve

🤖 Note

ShadowSync was built with AI-assisted tooling and then refined through manual review and iteration.

About

ShadowSync is a cross-platform tray app that mirrors selected USB folders to your computer using a shadow cache for fast incremental syncs.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages