Support md5
/sha1
/sha224
/sha256
/sha512
/sm3
/ripemd
/tiger
/whirlpool
/blake
Built with 🦀🕸 and inspired by github.com/fuyoo/wasm-hasher
The difference with github.com/fuyoo/wasm-hasher
- Hash process can be interrupted with
AbortSignal
- The exposed function can specify the chunks size for each read. Larger chunks use more CPU.
onProgress
callback is optional. Set tonull
to improve performance if you don't need it.- separate packages, smaller wasm files
import * as hasher from "@axetroy/wasm-hasher";
const controller = new AbortController();
const file = new Blob([], { type: "application/text" });
const md5 = await hasher.md5(
controller.signal,
file,
1024 * 1024 * 10,
(progress) => {
console.log("hash progress");
}
);
console.log(md5);
npm install @axetroy/wasm-hasher
npm install @axetroy/wasm-hasher-md5
npm install @axetroy/wasm-hasher-sha1
npm install @axetroy/wasm-hasher-sha2
npm install @axetroy/wasm-hasher-sha3
npm install @axetroy/wasm-hasher-sm3
npm install @axetroy/wasm-hasher-ripemd
npm install @axetroy/wasm-hasher-tiger
npm install @axetroy/wasm-hasher-whirlpool
npm install @axetroy/wasm-hasher-blake
Make sure you have install rust^1.69 and wasm-pack
make