blake3-team/blake3

the official Rust and C implementations of the BLAKE3 cryptographic hash function

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 11 minutes ago
Added to GitGenius on September 10th, 2026
Created on November 10th, 2019
Open Issues & Pull Requests: 201 (+0)
GitHub issues: Enabled
Number of forks: 481
Total Stargazers: 6,428 (+0)
Total Subscribers: 80 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 49
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 585 days
Stale 30+ days: 44
Stale 90+ days: 38

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • question (3)
  • enhancement (1)

Most active issues this week

Detailed Description

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.