Open Source · Apache-2.0Linux / macOS / Windows No telemetry · No paid tier

Real benchmarks insideLinux · macOS · Windows · CLI + GUI · Open Source

File transfers
at full speed.

blitcp (formerly fast-copy) is a Python CLI that squeezes every MB/s out of your hardware — block-order I/O, SSH tar-pipe streaming, content-aware deduplication, and sparse-file awareness. An honest, faster alternative to rsync and cp. 3–5× faster than scp / rsync / SFTP for remote transfers.

100% FREE · NO TELEMETRY · APACHE-2.0

2.5×faster than cp -ar · Linux, 12,347 files
LIVE  //  BLOCK-STREAMDUPLICATES DIVERTED AT GATE — 0 BYTES REWRITTEN
SRC
DST

Animated diagram: data blocks stream from the source drive to the destination drive; duplicate blocks are diverted at the xxHash-128 gate onto a reflink rail and are never rewritten, at 0 extra bytes.

THROUGHPUT
2,082 files/s
READ ORDER
PHYSICAL (FIEMAP)
POST-COPY VERIFY
xxh128

Latest releasev4.0.3 · August 2026

What's new

A Windows performance release: minutes shaved off every backup, and progress numbers you can finally trust.

Latest v4.1.6

  • Verification now compares content, not just size — every copied file is read back and hashed against the source, so a drive that writes the right number of wrong bytes no longer passes. Costs about 35% more on a verified run; --no-verify opts out.
  • Reported times became true — the clock no longer stops before the data is flushed to the device. A USB SSD used to print 4.0 GB/s for a copy that really ran at ~150 MB/s.
  • Script mode-q / --quiet prints one line on success and puts the reason on stderr on failure, with documented exit codes. -p / --progress keeps the bar. Requested in #4.
  • --sftp-only — pure SFTP with no remote exec, for managed gateways that close the exec channel.
  • Cross-run dedup stays inside the destination you named — it used to link onto unrelated backups elsewhere on the drive, silently sharing inodes between them.

Also new v4.0.3

  • Fixed: SSH copies to an NFS-backed destination stopped silently — the remote free-space check misread dfoutput on filesystems with long device names (every NFS mount), and ended the run with no message and nothing copied. Reported from the field in #4.

Also new v4.0.2

  • Windows disk mapping ~1000× faster — the physical-layout phase no longer triggers a Defender scan per file (12m 48s → 0.7s on a 6,600-file backup), and it's skipped entirely on SSD/NVMe sources, where ordering can't help.
  • Parallel small-file copies — files under 1 MB now go through a pool of parallel writers that overlaps per-file overhead (NTFS metadata, antivirus scans). Classic tar bundling stays available via --small-files stream.
  • Honest speed & ETA — a 30-second windowed rate replaces the run-long average that hid mid-run slowdowns; the ETA is stage-aware and smoothed instead of swinging several-fold.
  • See what's copying — the GUI shows the file being written right now, with its own progress for multi-GB files. A 50 GB archive no longer looks like a frozen counter.

Also new v4.0.0

  • fast-copy is now blitcp — new name, same tool (“blit” as in bit-block transfer). Old commands, imports, sidecar files and FAST_COPY_* environment variables keep working; dedup state and manifests carry over automatically.
  • Copy in your language — the CLI and GUI now speak English, Ελληνικά, 中文, Deutsch, Italiano, Español and 日本語 (--lang, BLITCP_LANG or the GUI dropdown).
  • Passphrase generatorcreds encrypt --generate (and a Generate button in the GUI) offers a 6-word diceware passphrase (≈77 bits, EFF wordlist, fully offline).
  • Faithful metadata preservation — permissions, directory modes & timestamps, and POSIX ACLs copied exactly on every path, matching cp -a.

Where the speed comes from

Every feature in blitcp exists because it moves bits faster or wastes fewer of them. No phone-home. No surprises.

01

Block-Order I/O

Uses FIEMAP on Linux, fcntl on macOS, and FSCTL on Windows to sort files by physical disk offset before reading — eliminating random-seek overhead and maximising sequential throughput.

02

Content Dedup

Files are fingerprinted with xxHash-128 — the fastest non-cryptographic hash available — before writing. Identical content is skipped, saving bandwidth and write cycles.

03

SSH Tar-Pipe Streaming

Remote transfers bypass SFTP entirely: blitcp pipes a tar stream over ssh + tar for a true single-hop transfer — nothing to install on the far side, zero temp bytes on either end. Works on Synology & busybox NAS.

04

Reflink-Based Copy

On btrfs / XFS / APFS / bcachefs, files are cloned via FICLONE / clonefile(2) — metadata-only CoW. A 10 GB copy on the same volume completes in milliseconds.

05

Sparse-File Aware

VM disks and Longhorn replicas are auto-detected via SEEK_DATA / SEEK_HOLE. Holes never hit the wire or the disk — 2.3 TB logical → 12 GB on disk on real backups.

06

Sudo + Audit Log

--use-sudo re-execs for root-only paths, then writes a hidden chattr +i JSONL audit log of every elevated run. Even root can't quietly delete a record.

07

Small-File Bundling

Instead of thousands of individual write calls, small files are bundled into a tar stream and block-written in one pass, then extracted locally. 10,000 tiny files move as fast as one big one.

08

Post-Copy Verification

Each file is hashed on the way in, while the copy engine already holds the bytes, then read back from the destination and compared. Corrupt or incomplete copies are reported before you delete the source. Hard-linked duplicates and reflink clones share the source’s own extents, and a sparse copy never reads the holes, so those are checked for existence and size instead.

09

Pre-Flight Space Check

Before writing a single byte, blitcp computes exactly how much unique data will land — after dedup and sparse holes — and verifies the target has room. Jobs never fail halfway through a 500 GB copy.

10

Cross-Platform

First-class Linux, macOS and Windows support — as a CLI and a cross-platform desktop GUI. PyInstaller standalone binaries on every release; no Python runtime required on the target.

+

Also included

Cloud S3 / Azure / GCS + SMB targets · encrypted AES-256-GCM credentials · a cross-run hash cache (2nd backup is much faster) · and a desktop GUI for Windows, macOS & Linux.

Never miss a benchmark.

blitcp now ships cloud copy (S3 / Azure / GCS), encrypted credentials and a cross-platform desktop GUI. Get new benchmarks & release notes — no spam, unsubscribe anytime.

What should I ping you about?

ONE EMAIL PER RELEASE · NO MARKETING LISTS · UNSUBSCRIBE ANYTIME

See it in action

The same engine, now with a cross-platform desktop app — compose transfers, manage encrypted connections, browse local, SSH and cloud storage, and manage dependencies & updates.

blitcp vs the alternatives

A feature-level comparison with the tools you're probably already using.

Featureblitcprsynccp (Unix)robocopy (Win)TeraCopy (Win)scp / SFTP
Block-order I/O (physical offset sort)
Content deduplication (xxHash-128)checksum only
SSH tar pipe (single hop)
Cloud storage (S3 / Azure / GCS)
Zero temp files on remote transferpartial
Reflink / CoW clones (btrfs/XFS/APFS)opt-in
Sparse-file awareness (SEEK_DATA)partialheuristic
Tamper-resistant audit log under sudo
Post-copy hash verification--checksumoptional
Pre-flight space check (before writing)
Small-file bundling
Standalone binary (no runtime needed)system pkgsystem pkginstallersystem pkg
Platform supportLinux/macOS/WinLinux/macOSLinux/macOSWindows onlyWindows onlyLinux/macOS/Win

How a copy actually runs

blitcp runs a pipeline optimised for maximum I/O efficiency on every transfer — scan in disk order, fingerprint as it streams, decide, then verify.

01 // SCAN

Walk in disk order

The source tree is walked in physical extent order, not alphabetical — so the disk head only ever moves forward. A pre-flight space check refuses a copy that can't finish.

02 // HASH

Fingerprint as it streams

Every file is fingerprinted with xxHash-128 while it’s being read — no separate pass — and cross-referenced against the destination manifest.

03 // DECIDE

Seen this content before?

Match found → a reflink or hardlink is written, zero new bytes. No match → the file is written once, in block-sorted order, small files bundled.

04 // VERIFY

Confirm & log

Post-copy verification runs by default — the destination is re-hashed and diffed against the source — plus a tamper-resistant sudo audit log for elevated runs.

Install in seconds

pip install blitcp on any platform with Python 3.8+, or grab a standalone binary from GitHub Releases — no runtime required on the target machine.

🐍 Python (all platforms)
# CLI — zero dependencies (Python 3.8+)
pip install blitcp
blitcp <source> <destination>

# Desktop GUI
pip install "blitcp[gui]"
blitcp-gui

# SSH support
pip install paramiko

# Cloud copy (S3 / Azure / GCS / SMB)
pip install "blitcp[cloud]"

# Optional: ~10x faster hashing
pip install xxhash
📦 Download binary

Detected:

💻Your platform

Windows may show a SmartScreen warning — the binaries are open source but not yet code-signed (choose “More info → Run anyway”). See why, and how to verify your download against the official SHA-256 hashes. Only download from the official GitHub release, where every build is published.

Other platforms & checksums
WindowsCLIGUI
macOS (Apple Silicon)CLIGUI
macOS (Intel)CLIGUI
LinuxCLIGUI
Python sourceblitcp.py

Questions, answered

The things people usually want to know before trying blitcp.

How much faster is it than scp, rsync or SFTP?

For remote transfers, typically 3–5× faster than scp/rsync/SFTP. SFTP often tops out at 1–2 MB/s because of its chunked protocol; blitcp streams a raw SSH tar pipe instead. Locally, the win comes from reading files in physical disk order and skipping duplicate and sparse data — on the same volume with a reflink-capable filesystem, copies can finish in milliseconds.

Do I have to install it on both machines for SSH transfers?

No. blitcp runs on your side and drives the remote over a normal SSH connection using the tar and ssh that are already there — no daemon, agent, or matching install required on the remote. It even works against busybox-based systems like Synology NAS.

Will it ever modify or delete my source files?

No. The source is only ever read. blitcp never writes to, renames, or deletes anything in the source tree — it builds the copy at the destination and verifies it.

Do I need Python installed?

Not necessarily. You can grab the standalone binary from the releases page (no runtime needed). If you already have Python 3, pip install blitcp gives you the CLI (and pip install blitcp[gui] the desktop app). All behave identically.

What does deduplication actually do to my files?

Identical files are stored once and the duplicates become reflinks (copy-on-write clones) or hard links on filesystems that support them — the files still appear normally, they just share underlying data. On link-incapable drives like FAT32 or exFAT, nothing is linked; blitcp simply reports the bandwidth it saved by not re-reading the duplicate.

Is it safe to run under sudo?

Yes. The --use-sudo flow is security-hardened: it uses O_NOFOLLOW to resist symlink attacks, runs a script-permission preflight, refuses self-update while elevated, and writes a tamper-resistant (chattr +i) JSONL audit log recording who copied what.

Which platforms are supported?

Linux, macOS and Windows — each with native I/O optimizations (FIEMAP on Linux, fcntl on macOS, FSCTL on Windows). Windows long paths over 260 characters are handled too.

Windows says “Windows protected your PC” (SmartScreen) — is blitcp safe?

Yes — the warning appears because the binaries are open source but not code-signed (certificates cost hundreds of euros per year for a free tool), not because anything is wrong with them. Click More info → Run anyway, and better yet verify the download: run Get-FileHash in PowerShell and compare against the official SHA-256 digests computed by GitHub for every release asset. Full walkthrough at blitcp.dev/install/windows/.

Does it phone home or collect any data?

No. There is no telemetry, no analytics, and no network calls beyond the SSH connection you explicitly ask for. It's open source under Apache 2.0 — you can read every line.

Do I have to pay to use blitcp?

No. blitcp is completely free and open source under the Apache 2.0 license. There's no paid tier, no license fee, and nothing locked behind a paywall — every feature you see is the whole tool.

Stop waiting on cp.

100% FREE · NO TELEMETRY · APACHE-2.0 · SINGLE BINARY

Detected platform — also macOS & Windows