Skip to main content
Home

Built and signed on GitHub Actions

A TypeScript implementation of crc32, can be use for deno. > CRC means 'Cyclic Redundancy Check' and is a way to checksum data. It is a simple algorithm based on polynomials and is used in such projects as gzip.

This package works with Node.js, DenoIt is unknown whether this package works with Cloudflare Workers, Bun, Browsers
It is unknown whether this package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
It is unknown whether this package works with Bun
It is unknown whether this package works with Browsers
JSR Score
100%
Published
a year ago (1.0.2)

crc32

A TypeScript implementation of crc32, can be use for deno.

CRC means 'Cyclic Redundancy Check' and is a way to checksum data. It is a simple algorithm based on polynomials and is used in such projects as gzip.

Definition

crc32(arr: Uint8Array | string): string;
class Crc32Stream {
  reset(): void;
  append(arr: Uint8Array | string): string;
  get crc32(): string;
}
hexToUint8Array(str: string): Uint8Array;
uint8ArrayToHex(bytes: Uint8Array): string;

Usage

basic

import { crc32 } from "jsr:@deno-library/crc32";
//import { crc32 } from "https://deno.land/x/crc32/mod.ts";

const str = "deno";
const bytes = new TextEncoder().encode(str);

const crc32_deno = "fd6f8c63";

assert(crc32(str) === crc32_deno);
assert(crc32(bytes) === crc32_deno);

Crc32Stream
Used to calculate src32 value for large file

import { crc32 } from "jsr:@deno-library/crc32";
//import { Crc32Stream } from "https://deno.land/x/crc32/mod.ts";

const crc32_deno = "fd6f8c63";

const crc32Stream = new Crc32Stream();
crc32Stream.append("d"); // 98dd4acc  === crc32("d")
crc32Stream.append("e"); // 7d90298b  === crc32("de")
crc32Stream.append("n"); // 21f6953   === crc32("den")
const val = crc32Stream.append("o");
assertEquals(val, crc32_deno);
assertEquals(crc32Stream.crc32, crc32_deno);
assertEquals(crc32Stream.crc32, crc32_deno);

crc32Stream.reset();

crc32Stream.append("d"); // 98dd4acc  === crc32("d")
crc32Stream.append("e"); // 7d90298b  === crc32("de")
crc32Stream.append("n"); // 21f6953   === crc32("den")
const val = crc32Stream.append("o");
assertEquals(val, crc32_deno);
assertEquals(crc32Stream.crc32, crc32_deno);
assertEquals(crc32Stream.crc32, crc32_deno);

Other methods

import { hexToUint8Array, uint8ArrayToHex } from "jsr:@deno-library/crc32";

const crc32_deno = "fd6f8c63";

// hexToUint8Array
const bytes = hexToUint8Array(crc32_deno);
assert(parseInt("fd", 16) === bytes[0]);
assert(parseInt("6f", 16) === bytes[1]);
assert(parseInt("8c", 16) === bytes[2]);
assert(parseInt("63", 16) === bytes[3]);

// uint8ArrayToHex
const bytes = new Uint8Array([
  parseInt("fd", 16),
  parseInt("6f", 16),
  parseInt("8c", 16),
  parseInt("63", 16),
]);
assert(uint8ArrayToHex(bytes) === crc32_deno);
Built and signed on
GitHub Actions

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@deno-library/crc32

Import symbol

import * as crc__ from "@deno-library/crc32";
or

Import directly with a jsr specifier

import * as crc__ from "jsr:@deno-library/crc32";

Add Package

pnpm i jsr:@deno-library/crc32
or (using pnpm 10.8 or older)
pnpm dlx jsr add @deno-library/crc32

Import symbol

import * as crc__ from "@deno-library/crc32";

Add Package

yarn add jsr:@deno-library/crc32
or (using Yarn 4.8 or older)
yarn dlx jsr add @deno-library/crc32

Import symbol

import * as crc__ from "@deno-library/crc32";

Add Package

vlt install jsr:@deno-library/crc32

Import symbol

import * as crc__ from "@deno-library/crc32";

Add Package

npx jsr add @deno-library/crc32

Import symbol

import * as crc__ from "@deno-library/crc32";

Add Package

bunx jsr add @deno-library/crc32

Import symbol

import * as crc__ from "@deno-library/crc32";