BLAKE3 in JavaScript — how fast?

Hashing 4 MiB chunks, the size a file gets split into for upload.

No WebAssembly, no workers — one thread of plain JavaScript in this tab.

What to expect

Measured on one desktop, single thread, 4 MiB per hash. Your number depends on your machine, so treat these as the shape of the result rather than a target.

BrowserPer 4 MiBThroughput
Chromium5.0 ms798 MiB/s
Firefox 15516.0 ms249 MiB/s

The gap is real and it is not a warm-up artefact: the code is fully optimised by both engines, and Firefox's JIT simply produces slower machine code for this shape of integer work. Rearranging the JavaScript did not close it.

Is the number real?

Before timing anything, the page hashes 8 MiB of deterministic bytes as two 4 MiB subtrees and merges them, then compares the result against the hash b3sum prints for the same bytes. If that check fails the page says so instead of showing a speed — a benchmark of the wrong answer is worth nothing.