@corpus-core/isix
v1.1.0
Published
Canonical ISIX perceptual image hash and media hash (same implementation as Colicam / Flutter). Browser-only; requires WasmGC (current Chromium).
Readme
@corpus-core/isix
Canonical ISIX (perceptual image hash) for browsers — the same implementation as Colicam (lib/utils/isix_hash.dart), compiled with dart compile wasm.
Requirements
- WasmGC (e.g. current Chromium). Not intended for Node.js hashing today.
- Serve over HTTPS or localhost if you rely on default
fetchof the.wasmfile.
Install
npm install @corpus-core/isixUsage
Namespace import:
import * as isix from "@corpus-core/isix";
await isix.init();
const hex = isix.computeIsixHex(await file.arrayBuffer());
const d = isix.isixDistance(hex, otherHex);Default import (same API on one object):
import isix from "@corpus-core/isix";
await isix.init();
const hex = isix.computeIsixHex(await file.arrayBuffer());Bundlers that do not resolve import.meta.url for WASM may need:
await isix.init({ wasmUrl: "/assets/colicam_isix.wasm" });Copy node_modules/@corpus-core/isix/dist/colicam_isix.wasm to your static dir (or import @corpus-core/isix/wasm with a bundler that supports .wasm subpath exports) and pass wasmUrl if needed.
Golden vectors
Expected hashes for fixed test images live in the Colicam repo: spec/isix_reference_vectors.json (SHA-256 of file bytes → isix).
Maintainer: build & publish
From the colicam repository root:
./tool/build_isix_wasm.sh
./tool/sync_isix_npm_dist.sh
cd npm/isix
npm publishBump version in npm/isix/package.json before publishing.
