Skip to content

Conversation

@m6w6
Copy link
Contributor

@m6w6 m6w6 commented Nov 17, 2025

crc-fast: https://github.com/awesomized/crc-fast-rust

crc-fast-rust$ make install DESTDIR=usr
php-src$ ./configure --with-crc-fast=$(pwd)/../crc-fast-rust/usr && make test TESTS=ext/hash

Dramatically increases the performance of all CRC-32 calculations on x86_64 and aarch64 platforms. The latest version of crc-fast (1.6.0 as of this writing) can exceed 110GiB/s on modern hardware.

Adds CRC-64 support (both NVME and ECMA-182 variants, the two most popular, used in places like the Linux kernel, AWS S3, etc.), including software fallbacks if the crc-fast library isn’t used.

Adds improved industry-standard naming for PHP’s supported CRC-32 variants, since PHP supports both standard (CRC-32/ISCSI and CRC-32/ISO-HDLC) and non-standard calculations but uses confusing, non-standard, and inconsistent naming (crc32() and hash(‘crc32’) are not the same thing!). The older, non-standard, confusing names can be deprecated at some point in the future, if desired.

Dramatically increases the performance of all CRC-32 calculations on
x86_64 and aarch64 platforms. The latest version of crc-fast (1.6.0 as
of this writing) can exceed 110GiB/s on modern hardware.

Adds CRC-64 support (both NVME and ECMA-182 variants, the two most
popular, used in places like the Linux kernel, AWS S3, etc.), including
software fallbacks if the crc-fast library isn’t used.

Adds improved industry-standard naming for PHP’s supported CRC-32
variants, since PHP supports both standard (CRC-32/ISCSI and
CRC-32/ISO-HDLC) and non-standard calculations but uses confusing,
non-standard, and inconsistent naming (`crc32()` and `hash(‘crc32’)` are
not the same thing!). The older, non-standard, confusing names can be
deprecated at some point in the future, if desired.
@devnexen
Copy link
Member

that is quite a tall change :) that needs to be discussed first however (internal mailing list) at least, that sounds RFC material IMHO too.

@m6w6
Copy link
Contributor Author

m6w6 commented Nov 18, 2025

Looking into the test failure. Looks like unintneional serialization changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants