ghostsync is a file synchronization tool written in Rust that is built to handle the worst-case scenarios of cloud storage file behavior—especially those seen on macOS with iCloud's "Optimize Storage" feature.
Where traditional tools like rsync, cp, or tar may hang, error, or silently skip files, ghostsync is designed to detect, report, and safely handle:
datalessfiles that haven't been downloaded yet (using BSD flags or Apple xattrs),- invisible metadata quirks introduced by iCloud and Finder,
- unexpected sync failures caused by cloud-managed attributes.
- ✅ Detects
datalessfiles usingls -ldOand xattrs (safe, nounsafecode). - ✅ Prints meaningful diagnostics when files are skipped or problematic.
- ✅ Walks and filters files robustly, using
walkdirand xattr inspection. - ✅ Handles macOS/iCloud corner cases better than common tools.
ghostsync ~/Documents ~/BackupThis will walk the source tree and copy to the destination, flagging any skipped or problematic files with explanations.
cargo install ghostsyncRequires Rust 1.70+ and macOS (due to reliance on macOS-specific tools).
MIT License © 2025 Nathan Dautenhahn