npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@huggingface/blake3-jit

v0.0.2

Published

Temporary fork of blake3-jit with Hasher.reset() and pre-allocated buffers. Will be deprecated once upstream blake3-jit exposes reset().

Readme

@huggingface/blake3-jit

Temporary fork of blake3-jit by @Brooooooklyn with performance enhancements for Hugging Face Xet content-defined chunking.

This package will be deprecated once upstream blake3-jit exposes these changes.

Changes from upstream

  1. Hasher.reset() method — resets the hasher to process a new message with the same key/flags, reusing all internal buffers (zero allocations per hash).

  2. Pre-allocated internal buffersparentBlock, parentCv, chunkCv, outWords, and finalizeCv are allocated once in the constructor and reused across update/finalize calls, significantly reducing GC pressure in hot loops.

  3. ChunkState.resetTo() method — allows reusing ChunkState instances instead of allocating new ones per chunk.

  4. Removed Uint32Array view fast-path in ChunkState.update — the byte-by-byte readLittleEndianWordsFull path was empirically faster and avoids RangeError on unaligned offsets.

  5. Dual ESM/CJS output via tshy — the upstream package is ESM-only; this fork uses tshy to produce both ESM and CommonJS builds, required for compatibility with Node.js CJS consumers.

These changes are also available as a patch file at packages/xetchunk-wasm/patches/blake3-jit.patch (applicable to the upstream dist bundle).

Installation

npm install @huggingface/blake3-jit

Usage

import { hash, Hasher } from "@huggingface/blake3-jit";

// One-shot hashing
const digest = hash(new Uint8Array([1, 2, 3]));

// Incremental hashing with reset (zero-alloc reuse)
const hasher = new Hasher();
hasher.update(chunk1);
const hash1 = hasher.finalize();

hasher.reset();
hasher.update(chunk2);
const hash2 = hasher.finalize();

// Keyed hashing (MAC)
const mac = Hasher.newKeyed(key).update(message).finalize();

Upstream

This is a fork of blake3-jit — a high-performance BLAKE3 implementation with runtime JIT WASM SIMD, created by LongYinan (@Brooooooklyn).

See the upstream repository for full documentation, benchmarks, and architecture details.

License

MIT — see LICENSE