A CRC is a short checksum you use to confirm that data wasn't corrupted, for example after a file upload. This RFC from Michael Wallner and Don MacAskill lets ext/hash use a library called crc-fast for CRC calculations, which would make them much faster on many servers. It also adds new CRC-64 checksums, including CRC-64/NVME, the one AWS S3 recommends.
Why it's needed
PHP has two gaps today.
On ARM servers, like AWS Graviton or Apple Silicon, PHP calculates CRCs in plain software. Modern CPUs have SIMD instructions that process many bytes at once, but PHP doesn't use them on ARM. The RFC measured PHP at about 0.4 GiB per second there.
PHP also can't compute CRC-64/NVME at all, so applications that talk to AWS S3 and need it have to work around the gap.
What changes
You'd turn it on when you build PHP:
./configure --with-crc-fast
The CRC-32 hashes you already use, crc32, crc32b and crc32c, then get faster. The output stays exactly the same, including PHP's unusual hash('crc32', ...) result, which differs from most other languages.
// These continue to produce identical results with or without crc-fast: hash('crc32', $data); hash('crc32b', $data); hash('crc32c', $data); crc32($data);
Six new CRC-64 algorithms also work with hash(): crc64nvme, crc64ecma, crc64iso, crc64xz, crc64redis and crc64ms. They're available even without crc-fast, just without the speedup.
How much faster
The RFC benchmarked crc32b on 1 GiB of data. On an Apple M3 Ultra it went from about 0.4 to 99.6 GiB per second, which is 233 times faster. AWS Graviton4 was 141 times faster, and Intel and AMD chips were about 4 times faster.
crc-fast is written in Rust. It detects what your CPU supports at runtime and falls back to plain software when needed. The AWS SDK for Rust uses it, and SmugMug and Flickr run it in production.
What it means for existing code
Nothing breaks, because the library is opt-in at build time. Without it, PHP works as it does now, plus the new CRC-64 algorithms. There are no new INI settings or constants.
Where it stands
It's under discussion. The RFC was first published on February 17, 2026, and updated on February 23. There's no vote yet, and it targets PHP 8.6.