Copy Engine

FilmCan copies with one purpose-built engine: the FilmCan Engine, a fan-out copier designed for cinema rushes: read the source once, write to every destination at once, verify with cinema-grade hash lists, and recover a failed drive with one click.


How it works

  1. Read source once. A single read pass pulls each file straight off the card, bypassing the Mac's memory cache, so a huge offload doesn't fill up your RAM with cached data.
  2. Broadcast to every destination at once. One bounded channel feeds a writer task per drive. The slowest drive sets the pace; faster drives idle briefly. Destination writes bypass the memory cache too, so a multi-hundred-GB copy stays memory-bounded.
  3. Honest writes. On exFAT, external, and USB drives, FilmCan forces the drive's own cache to flush to the physical media before marking a file done, so "copy finished" means the bytes are actually on the drive, not just queued in a buffer. Internal drives use the Mac's normal, faster save method, since they don't have this problem.
  4. Atomic finalize. Each file is written to a hidden temp file first, then swapped into its final name only once it's complete, so you never see a half-written file at the destination.
  5. Verify (see modes below), overlapping the copy of the next file.
  6. MHL per source root. One sealed ASC-format .mhl per source root, aggregating every file in that tree, at <dest>/.filmcan/hashlists/<root>.mhl.

Verify pipeline

Verification runs on its own lane while the next file is still copying, so a paranoid re-read no longer roughly doubles the wall time. It mostly hides behind the copy. Only the last file's verify tail runs alone (shown as "Verifying…").


Verification modes

Pick in Backup Editor → Options → Verification.

Mode Catches Cost
Off nothing fastest, no hashing or checking
Fast (default for new projects) RAM bit-flips, PCI/USB corruption, partial writes, via the hash computed during the copy none beyond the copy; no re-read
Paranoid all of Fast + drive-firmware silent corruption, OS-cache lies, bit rot at rest, re-reads every destination (and the source) from disk and re-hashes extra disk I/O, mostly overlapped with copying

Resume: re-running skips what's already there

Re-running a backup (including after Stop) does not recopy files that are already done. A file is skipped when it is recorded in every destination's hash list and still present on disk there. Only the remaining files are copied; the progress row reads "Resuming: N already backed up, copying the rest."


Directory sources

Drop a mounted card (e.g. /Volumes/A001_C002) or any folder. FilmCan walks the tree, mirrors the layout under each destination, and aggregates one MHL per source root. Hidden macOS junk (.Spotlight-V100, .fseventsd, .DS_Store, .Trashes) is skipped automatically.


Failed drives, one-click repair

When a drive fails mid-copy or fails verify, a Retry button appears on its row, opening the repair sheet:

From sibling enables only when at least one other destination from the same job succeeded.


Performance & memory