explaingit

callmealphabet/fastcp

Analysis updated 2026-05-18

2RustAudience · ops devopsComplexity · 1/5Setup · easy

TLDR

A drop-in cp replacement that automatically uses reflink copies on supported filesystems, making large file copies near-instant by avoiding physical data duplication.

Mindmap

mindmap
  root((fastcp))
    What it does
      cp wrapper
      Adds reflink flag
      Instant large copies
    When It Helps
      Files over 10 GB
      Slow drives
      Supported filesystems
    When It Does Not Help
      Small files
      Unsupported filesystems
    Install
      curl one-liner
      chmod and done
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Copy large files over 10 GB much faster on Linux filesystems that support reflinks, such as Btrfs or XFS.

USE CASE 2

Replace cp with fastcp in shell scripts to get near-instant copies of big datasets on slow drives without changing any flags.

USE CASE 3

Test whether your Linux filesystem supports reflink copies without manually adding the reflink=always flag each time.

What is it built with?

RustBash

How does it compare?

callmealphabet/fastcpcodingstark-dev/decantemotions-research/lunarfs
Stars222
LanguageRustRustRust
Setup difficultyeasyeasymoderate
Complexity1/53/54/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires a Linux filesystem that supports reflinks (Btrfs, XFS, or similar), falls back to failure on unsupported filesystems.

In plain English

fastcp is a thin wrapper around the standard cp command on Linux that automatically adds a flag called reflink when copying files. The reflink flag tells the filesystem to create an instant reference copy rather than actually duplicating the data on disk. Instead of physically writing all the bytes from the source to the destination, a reflink copy records that the destination points to the same data as the source. If either file is later changed, only the changed parts are written separately. This makes the copy operation nearly instant for any file size. The tool is not a replacement for cp: it calls cp internally and simply appends the reflink=always option before passing along whatever other arguments you supply. If your filesystem or operating system does not support reflinks, the copy will fail rather than fall back to a normal copy, so it is designed for systems where that support is available. According to the documentation, fastcp adds a small overhead of about five milliseconds compared to a regular cp, so it is marginally slower on tiny files. For large files over ten gigabytes, and especially on slow drives, the reflink approach is faster because skipping the physical data duplication saves time. Installation is one line: download the script to a system directory and mark it executable. Uninstalling is equally simple: delete that file. The usage is identical to cp with no differences in flags. The README is short and does not describe the Rust language label in the repository metadata, so the project may be primarily a shell script.

Copy-paste prompts

Prompt 1
I have a 50 GB file I need to copy quickly on a Btrfs filesystem. How does fastcp use reflinks to make this faster than regular cp?
Prompt 2
How do I install fastcp on my Linux server and verify it is working correctly for large file copies?
Prompt 3
What filesystems support the reflink=always flag that fastcp uses, and how do I check if my current filesystem supports it?

Frequently asked questions

What is fastcp?

A drop-in cp replacement that automatically uses reflink copies on supported filesystems, making large file copies near-instant by avoiding physical data duplication.

What language is fastcp written in?

Mainly Rust. The stack also includes Rust, Bash.

How hard is fastcp to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is fastcp for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub callmealphabet on gitmyhub

Verify against the repo before relying on details.