Skip to main content

English | 简体中文

blitcp — High-Speed File Copier with Deduplication & SSH Streaming

Release PyPI Downloads License Platforms Website Ko-fi Liberapay

blitcp is the new name of fast-copy (renamed in v4.0.0 — "blit" as in bit-block transfer, which is what the block-order engine does). Existing installs upgrade in place via --update; on-disk state and FAST_COPY_* environment variables keep working. See the CHANGELOG.

A fast, cross-platform tool for copying files and directories at maximum sequential disk speed — built for USB drives, external HDDs, NAS backups and large SSH transfers. CLI + desktop GUI, in 7 languages.

Why blitcp?

Problem Solution
cp -r is slow on HDDs due to random seeks Reads files in physical disk order for sequential throughput
Thousands of small files copy painfully slow Bundles small files into tar stream batches
Duplicate files waste space and time Content-aware dedup — copies once, hard-links or reflinks the rest
No space check until copy fails mid-way Pre-flight space check before any data is written
Copies that quietly fail half-way Post-copy verification — a local copy re-reads every copied file and hashes its content against the source; remote and cloud destinations get existence, size and a hashed sample. Either way the run ends on an exit code a script can act on
Copying between two servers is painful Remote-to-remote relay via SSH tar pipe streaming
SFTP is disabled, or the box has nothing installed on it Raw SSH tar streaming using the remote's own tar — duplicates hard-linked on the far side rather than sent twice

Quickstart

pip install blitcp            # CLI — zero dependencies, Python 3.8+

blitcp /data /media/usb/data                # local → local
blitcp /data user@host:/backup              # local → remote over SSH
blitcp user@host:/data s3://bucket/backup   # any combination of local/SSH/cloud
blitcp --help                               # everything else

Optional: pip install paramiko for SSH, blitcp[cloud] for S3/Azure/GCS/SMB, xxhash for ~10× faster hashing. Prebuilt CLI and GUI binaries for Linux, macOS and Windows are on the Releases page — no Python needed.

Key features

  • Block-order reads — files are read in physical disk order (FIEMAP/fcntl/FSCTL), eliminating random seeks on HDDs
  • Reflink copies on btrfs / XFS / APFS / bcachefs — metadata-only CoW clones make a 10 GB same-volume copy complete in milliseconds
  • Content-aware deduplication — xxHash-128/SHA-256; each unique file is copied once, duplicates become hard links or reflinks, with a cross-run SQLite cache
  • SSH transfers without SFTP — tar batches over raw SSH channels, local↔remote and remote↔remote relay (streamed through your machine, never stored)
  • Cloud object storage — s3://, az://, gs:// as source or destination, with encrypted saved connections and a built-in passphrase generator
  • SMB / UNC shares — copy straight to \\server\share with saved credentials
  • Sparse-file awareness — VM images copied via SEEK_DATA/SEEK_HOLE; holes never hit the wire
  • Faithful metadata — permissions, timestamps, owner, xattrs and POSIX ACLs / NTFS DACLs+ADS, matching cp -a
  • Safety rails — pre-flight space check, post-copy verification with proper exit codes, honest dedup accounting on FAT32/exFAT
  • --use-sudo self-elevation with a tamper-resistant (chattr +i) JSONL audit log
  • Interface in 7 languages — English, Ελληνικά, 中文, Deutsch, Italiano, Español, 日本語
  • Multiple sources, globs, single-file renames — cp -r-style ergonomics across every mode
  • Works on Linux, macOS, Windows (long paths included) · Synology/busybox-friendly · self-updating

Measured, not marketed

Scenario Result
Linux, 12,347 small files, cold HDD → SSD 2.5× faster than cp -ar (5.9s vs 15.0s, dedup+verify ON)
Windows, 9,578 files off USB 2.0 1.3× faster than robocopy (2m28s vs 3m16s /MT:1, verification ON)
SSH, 1,098 files / 1.1 GB over LAN Level with scp -r (1m50.4s vs 1m55.4s, verify+dedup ON) via tar streaming — single run

Full methodology and more scenarios: blitcp.dev/benchmarks · DOCUMENTATION.md

The SSH row is one run, not a median of three, and to a Windows drive through WSL scp was ahead. Over SSH blitcp is not sold on speed: what it adds is verification, dedup and a resumable second run. Both runs, with the caveats.

Desktop GUI

blitcp GUI

pip install "blitcp[gui]" && blitcp-gui

Transfers, saved connections, file browser, history and settings — same engine, point and click. More screenshots →

Documentation

Support

blitcp is free and Apache-2.0 licensed, and stays that way. Donations via Ko-fi or Liberapay go towards the Windows code signing certificate, hosting for blitcp.dev, and the hardware the published benchmarks run on. Starring the repository or filing a good bug report helps just as much.

License

Apache License 2.0 — see LICENSE. The --index-existing / --dedup-existing features were contributed by York-Simon Johannsen (#3).

Metadata

Release files for blitcp 4.2.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blitcp 4.2.13
File Size Uploaded
blitcp-4.2.13.tar.gz 574.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blitcp 4.2.13
File Interpreter ABI Platform
blitcp-4.2.13-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / blitcp-4.2.13.tar.gz

Download URL blitcp-4.2.13.tar.gz
Size 574.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a2ec3710e206512cee4dcc15dc51d9813eb3d1bf132af6daa44e3385984d9770
BLAKE2b-256 checksum
How to use checksums
03a2b8e2b4ec0aacb95ea209dc6e649d1f149f30ce2f58d34aa04b83ed8b34a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / blitcp-4.2.13-py3-none-any.whl

Download URL blitcp-4.2.13-py3-none-any.whl
Size 584.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2fe7a67616fd8632d8aa6fded0aa5d6603d4a906a2d64cc03a2fc669fab95625
BLAKE2b-256 checksum
How to use checksums
3c4daaea8462ef3a54c539b47ec6e7720691fd4699fc190fb8495717d258eafa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

4.2.13 This release

2 release files

4.2.9

2 release files

4.1.6

2 release files

4.0.3

2 release files

4.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page