# buzhash

> Rolling buzhash

Latest version **0.0.2** (published 2016-03-31) · ISC license · 4 weekly downloads

## Install

```sh
npm install buzhash
pnpm add buzhash
yarn add buzhash
bun add buzhash
```

## Health

**Score 5/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score; declining downloads.

## Facts

| | |
|---|---|
| Version | 0.0.2 |
| Published | 2016-03-31 |
| First published | 2016-03-31 |
| Weekly downloads | 4 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=4.0.0 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Evan Verworn |
| Maintainers | xori |
| Keywords | rolling, hash |

## Links

- npm: https://www.npmjs.com/package/buzhash
- Repository: git@verworn.net:buzhash
- npm.io page: https://npm.io/package/buzhash

## Alternatives

- [@gemini-wallet/core](https://npm.io/package/@gemini-wallet/core.md) — 515.6K weekly downloads
- [utility](https://npm.io/package/utility.md) — 416.6K weekly downloads
- [@primno/dpapi](https://npm.io/package/@primno/dpapi.md) — 7.2K weekly downloads
- [pi-readseek](https://npm.io/package/pi-readseek.md) — 3.7K weekly downloads
- [@emilia-protocol/verify](https://npm.io/package/@emilia-protocol/verify.md) — 1.1K weekly downloads

## Recent versions

- 0.0.2 (latest) — 2016-03-31
- 0.0.1 — 2016-03-31

## README

# BuzHash for js

Usage:

    var BuzHash = require('BuzHash');
    var buz = new BuzHash(32);
    ...
    var hash = buz.update(byte)

Useful for generating rolling hashes for variable sized chunk deduplication.
Pure js implementation though so it's probably slow as balls.

Run `node test.js` to see 3 test cases with data that has been *slightly*
modified each time. The first column is the byte index, the second is the first
10 characters of the sha256 for that chunk.

Notice that the sha's match up again after the modified sections. With this you
can see what chunk is different.

#### Example Run

    $ node test.js
    157     matbC9U/2N
    698     1NPo9tEVvV
    1597    Zz8MfmjG/c <- this chunk will change
    1674    g1cpKHjnvw
    1983    PWffkkf9eK
    2071    KqRcYjnTvQ
    2072    Nqnn8clbgv
    2073    jjXCzTv2ZB
    2517    oMNCS+EtCu
    2919    UVdFmFcO0D
    3082    sQWGagpnlk
    10 0.32%           
    157     matbC9U/2N
    698     1NPo9tEVvV
    1404    f85sZne8lj <- notice it's different to the first data set
    1710    OVnGk3Z/6l
    1787    g1cpKHjnvw <- but it syncs back up
    2096    PWffkkf9eK
    2184    KqRcYjnTvQ
    2185    Nqnn8clbgv
    2186    jjXCzTv2ZB
    2630    oMNCS+EtCu
    3032    UVdFmFcO0D
    3195    sQWGagpnlk
    11 0.34%           
    157     matbC9U/2N
    698     1NPo9tEVvV
    1404    lxN32Ed3sv <- in this set I changed one letter and we can see where
    1710    OVnGk3Z/6l
    1787    g1cpKHjnvw
    2096    PWffkkf9eK
    2184    KqRcYjnTvQ
    2185    Nqnn8clbgv
    2186    jjXCzTv2ZB
    2630    oMNCS+EtCu
    3032    UVdFmFcO0D
    3195    sQWGagpnlk
    11 0.34%

---
_Source: https://npm.io/package/buzhash · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
