Can we add the BLAKE3 hash? Created a PR here: https://github.com/php/php-src/pull/13194
BLAKE3 is a very fast ("blazing fast") cryptographically secure hash. It is the latest iteration of the BLAKE hash, which was a SHA3 finalist~ see https://github.com/BLAKE3-team/BLAKE3 for more info on BLAKE3. In the PR is a portable C implementation, along with optimized ARM-neon and x86_64 SSE2, SSE41, AVX2, and AVX512 implementations for GCC+unix and GCC+windows and MSVC (*MSVC is currently only using the portable implementation, but it should be easy for a developer equipped with MSVC to enable the optimized implementations. I don't have MSVC personally) That means the PR includes ~35 copies of the same algorithm, in hand-written assembly, optimized for various CPU/compiler/OS combinations. Which means the PR is hug*e.* It would be possible to only ship a subset of them (For example, keeping just the gcc+unix+SSE2 and gcc+unix+AVX2 and ARM-neon and trash the rest, would benefit a lot systems in-the-wild, and reduce the size of the PR substantially) It would also be possible to only ship the portable pure C implementation, but that would also be detrimental to the performance, which is the main motivator for adding BLAKE3 in the first place. But the groundwork to ship them all is already done (see the PR) Thoughts?