@rasmx/blake3-node
v1.0.1
Published
High-performance BLAKE3 hashing bindings for Node.js using Rust and SIMD optimizations.
Downloads
235
Maintainers
Readme
@rasmx/blake3-node
The fastest BLAKE3 hashing library for Node.js. Powered by Rust, SIMD (AVX-512/NEON), and N-API.
Features
- 🚀 Extreme Performance: Outperforms native Node.js
cryptoand other WASM libraries. - 🧵 Multi-threaded: Automatic Rayon parallelism for large inputs.
- ⚡ Async & Sync: Non-blocking
asyncsupport for high-throughput servers. - 🛡 Type-Safe: Written in Rust with full TypeScript definitions.
- 📦 Zero Dependencies: Statically linked binary, no system requirements.
Installation
pnpm add @rasmx/blake3-node
# or
npm install @rasmx/blake3-nodeUsage
Synchronous (Block hashing)
Best for small inputs or CLI tools.
import { hash } from '@rasmx/blake3-node';
const buffer = Buffer.from("Hello World");
const digest = hash(buffer);
console.log(digest); // Hex stringAsynchronous (Promise based)
Best for servers (Express, Fastify) to avoid blocking the Event Loop.
import { hashAsync } from '@rasmx/blake3-node';
import fs from 'fs/promises';
async function processFile() {
const data = await fs.readFile('./large-file.iso');
const digest = await hashAsync(data);
console.log(digest);
}Streaming (Class based)
For memory-efficient processing of streams.
import { Blake3Hasher } from '@rasmx/blake3-node';
const hasher = new Blake3Hasher();
hasher.update(Buffer.from("Chunk 1"));
hasher.update(Buffer.from("Chunk 2"));
const hex = hasher.digest(); // String
const bin = hasher.digestBinary(); // BufferBenchmarks
Running on Ryzen 9 5900X (Single Thread):
| Input Size | Method | Speed | |------------|--------|-------| | 100 MB | Sync | ~3450 MB/s | | 100 MB | Async | ~1150 MB/s | | 32 B | Ops | ~1,850,000 ops/sec |
License
MIT
