Skip to content

ipfs/js-hamt-sharding

Repository files navigation

hamt-sharding

codecov CI

JavaScript implementation of sharding using hash array mapped tries

About

A Hash Mapped Trie implementation for JavaScript.

This is used by @helia/unixfs for it's HAMT-sharded directory implementation.

Example

import { createHAMT } from 'hamt-sharding'
import crypto from 'crypto-promise'

// decide how to hash buffers made from keys, can return a Promise
const hashFn = async (buf) => {
  return crypto
    .createHash('sha256')
    .update(buf)
    .digest()
}

const bucket = createHAMT({
  hashFn: hashFn
})

await bucket.put('key', 'value')

const output = await bucket.get('key')
// output === 'value'

Install

$ npm i hamt-sharding

Browser <script> tag

Loading this module through a script tag will make it's exports available as HamtSharding in the global namespace.

<script src="https://unpkg.com/hamt-sharding/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

JavaScript implementation of hash array mapped tries for use in sharding

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages