BLAKE3 is a cryptographic hash function that offers significant performance improvements over MD5, SHA-1, SHA-2, SHA-3, and BLAKE2 while maintaining security and protection against length extension attacks.
BLAKE3 solves the problem of needing a fast, secure, and versatile hash function by building on an optimized instance of BLAKE2 and the Bao tree mode. Its Merkle tree structure enables it to function as a PRF, MAC, KDF, and XOF in addition to serving as a regular hash function. This same tree structure makes it highly parallelizable across threads and SIMD lanes, and enables verified streaming and incremental updates. The algorithm uses a single design with no variants, optimized to perform well on both x86-64 and smaller architectures.
Developers should choose BLAKE3 when they need a modern hash function that prioritizes both speed and cryptographic security. It suits projects requiring high-performance hashing, verified streaming capabilities, or the flexibility to use the same algorithm for multiple purposes without selecting between variants. The repository provides multiple implementation options: a Rust crate with optimizations for SSE2, SSE4.1, AVX2, AVX-512, NEON, and WASM with automatic CPU feature detection, a command-line tool that uses multithreading by default, and a C implementation with equivalent SIMD support. A reference implementation is available for those writing ports to other languages or building systems that do not require multithreading or SIMD optimizations.
The project maintains both Rust and C implementations with comprehensive SIMD optimization coverage across multiple instruction sets. Test vectors are provided covering extended outputs, all three modes, and various input lengths. The repository includes a reference implementation designed for clarity and simplicity, supporting language ports to other ecosystems. Automated testing infrastructure validates the implementations across the supported platforms.