webbuf_blake3

Crates.iowebbuf_blake3
lib.rswebbuf_blake3
version0.15.0
created_at2024-10-25 18:57:06.170256+00
updated_at2025-12-13 13:43:57.186946+00
descriptionBlake3 hash function for WebBuf with optional support for WASM.
homepage
repositoryhttps://github.com/identellica/webbuf
max_upload_size
id1422823
size48,603
Ryan X. Charles (ryanxcharles)

documentation

README

webbuf_blake3

BLAKE3 cryptographic hash function for Rust and WebAssembly.

Installation

[dependencies]
webbuf_blake3 = "0.13"

Usage

use webbuf_blake3::{blake3_hash, double_blake3_hash, blake3_mac};

// Hash data
let data = b"Hello, world!";
let hash = blake3_hash(data).unwrap();
assert_eq!(hash.len(), 32);

// Double hash (hash of hash)
let double_hash = double_blake3_hash(data).unwrap();
assert_eq!(double_hash.len(), 32);

// Keyed MAC (key must be exactly 32 bytes)
let key = [0u8; 32];
let mac = blake3_mac(&key, data).unwrap();
assert_eq!(mac.len(), 32);

API

Function Description
blake3_hash(data: &[u8]) -> Result<Vec<u8>, String> Compute BLAKE3 hash (32 bytes)
double_blake3_hash(data: &[u8]) -> Result<Vec<u8>, String> Compute hash of hash
blake3_mac(key: &[u8], data: &[u8]) -> Result<Vec<u8>, String> Compute keyed MAC (key must be 32 bytes)

WebAssembly

Build with the wasm feature for WebAssembly support:

[dependencies]
webbuf_blake3 = { version = "0.13", features = ["wasm"] }

The TypeScript wrapper is available as @webbuf/blake3 on npm.

License

MIT

Commit count: 0

cargo fmt