crc32hash
Calculate crc32 hash of a string, Uint8Array, or Deno.Reader.
This module exports 2 functions:
function crc32(value: string | Uint8Array): number;
function crc32Reader(value: Deno.Reader, buffer?: Uint8Array): Promise<number>;
String:
import {crc32} from 'https://deno.land/x/crc32hash@v1.0.0/mod.ts';
console.log(crc32('abc'));
Uint8Array:
import {crc32} from 'https://deno.land/x/crc32hash@v1.0.0/mod.ts';
console.log(crc32(new Uint8Array([97, 98, 99])));
Deno.Reader:
import {crc32Reader} from 'https://deno.land/x/crc32hash@v1.0.0/mod.ts';
const filename = new URL(import.meta.url).pathname;
const fp = await Deno.open(filename, {read: true});
try
{ console.log(await crc32Reader(fp));
}
finally
{ fp.close();
}
You can pass your own buffer that will be used during the read process.
By default crc32Reader()
creates a new 8 KiB buffer.
For repeated operations (but not simultaneous), it’d be more optimal to allocate buffer once, and reuse it.
const buffer = new Uint8Array(8*1024);
const res1 = await crc32Reader(source1, buffer);
const res2 = await crc32Reader(source2, buffer);
const res3 = await crc32Reader(source3, buffer);