Copy Engine
Size-first dispatch with zero-alloc micro copies, raw P/Invoke I/O, triple-buffered overlapped pipeline, 9 hash engines, VSS snapshot support, and Defender exclusion.
Size-First Dispatch
Brutal Copy's engine categorises every file by size before choosing the optimal copy path. Four tiers ensure every file gets purpose-built handling:
| Tier | Size Range | Optimisation |
|---|---|---|
| Zero | 0 bytes | Instant empty file creation, no I/O |
| Micro | 1 – 85 KB | Stack-allocated buffer, raw Windows API handles, zero heap allocation |
| Small | 85 KB – 4 MB | Thread-local buffer pool, synchronous I/O |
| Large | 4 MB+ | Triple-buffered overlapped I/O pipeline |
Micro and small files use dedicated inlined copiers with raw kernel handles for maximum throughput on small-file workloads.
Copy Strategies
The copy engine uses semaphore-based thread pooling with configurable concurrency. Key capabilities:
- Triple-buffered overlapped I/O — async read/write pipeline for large file copying.
- Multi-destination — read once, write to many targets simultaneously.
- 9 inline hash engines — BLAKE3, SHA-256, SHA-384, SHA-512, SHA-1, MD5, CRC32, CRC32C, and no-hash fast path.
- VSS snapshot support — copy locked files via Volume Shadow Copy.
- Recovery checkpoints — periodic crash-resilient checkpoint files for long operations.
- Defender exclusion — temporarily excludes paths from Windows Defender real-time scan.
- Locked file handling — detect locked files with skip, unlock, or VSS fallback options.
Performance Presets
Configure copy behaviour in Settings > Copy Engine:
- Thread count — adjust parallel copy threads for your hardware (default: 4).
- Hash verification — choose from 9 algorithms for inline or post-copy verification.
- Conflict policy — set the default conflict resolution mode.
- Recovery mode — enable periodic checkpoints for crash resilience.
- Retry count — configure automatic retry for failed operations.
- Preserve options — timestamps, attributes, junctions, symlinks.
Conflict Resolution
When a destination file already exists, Brutal Copy applies one of six conflict policies:
- Overwrite — always replace existing files, clearing read-only/hidden attributes if needed.
- Overwrite If Newer — only replace if the source file has a more recent UTC timestamp.
- Overwrite If Larger — only replace if the source file is larger than the destination.
- Rename — auto-rename the destination with cached suffix patterns.
- Skip — keep existing files and do not copy.
- Ask — raise a dialog for each conflict, letting you decide per-file.
Set the default policy in Settings > Copy Engine. You can also override from the CLI (--conflict switch).
Long Path & NTFS Support
All I/O operations automatically extend paths beyond the 260-character Windows limit using the \\?\ prefix. Directory creation, file reads, and file writes all handle extended-length paths transparently.
The engine also preserves advanced NTFS features during copy:
- Alternate Data Streams (ADS) — copy and preserve NTFS metadata streams.
- Sparse Files — detect and preserve sparse file structure.
- NTFS Compression — preserve compression flags on files and folders.
- Symbolic Links & Junctions — copy or recreate symlinks and junction points.
- Hard Links — option to recreate hard links instead of full copies.
- File Ownership — optionally preserve file owner/creator information.
- Encrypted Files — option to copy encrypted files without decryption.