hyperid-wasm package icon
jwerle/hyperid-wasm
Public
wasmer run jwerle/hyperid-wasm

hyperid-wasm

A HyperID implementation written in ZZ compiled to WebAssembly (WASM) format

Installation

Node

$ npm install @little-core-labs/hyperid-wasm

WAPM

$ wapm install jwerle/hyperid-wasm

Usage

const hyperid = require('hyperid-wasm')

hyperid.ready(() => {
  const hid = hyperid({ fixedLength: true, startFrom: 1024 })
  console.log(hid()) // atd1gpRDT1SJZnaOhdLR5Q/0000001024
  console.log(hid()) // atd1gpRDT1SJZnaOhdLR5Q/0000001025
})

API

generator = hyperid([opts])

Create a new hyperid generator where opts is the same arguments given to the original hyperid.

const generator = hyperid({
  fixedLength: false, // use a fixed length counter
  startFrom: 0, // initial counter value
  urlSafe: false, // use URL safe characters
})

id = generator()

Generate a hyperid from hyperid context. (See above)

const id = generator()

Benchmark

This original module is ~4x faster than this one.

hyperid generate - variable length (original) x 11,806,789 ops/sec ±1.59% (83 runs sampled)
hyperid generate - variable length (wasm) x 4,179,909 ops/sec ±0.95% (88 runs sampled)
hyperid generate - fixed length (original) x 9,347,663 ops/sec ±3.26% (88 runs sampled)
hyperid generate - fixed length (wasm) x 3,772,629 ops/sec ±2.14% (92 runs sampled)

Limits

Initial Memory

By default, this module allocates 2 pages of memory for the WebAssembly module. That is 2 * 64 * 1024 bytes.

Maximum Memory

This module allows at most 256 pages of memory. That is 256 * 64 * 1024 bytes.

See Also

License

MIT

A hyperid implementation written in ZZ compiled to WASM


Github
More packages
wasm in Go
Kaiya Xiong
Kaiya Xiong
Kaiya Xiong
Kaiya Xiong
wasm in Go
wasm in Go
wasm in Go
wasm in Go
WalletD WASM
Karl Buys
Karl Buys
Karl Buys
Karl Buys
WalletD WASM
Devin
Devin
Devin
Devin
WalletD WASM
Amulya
Amulya
Amulya
Amulya
Wasm Project
jazzandrock avatar
jazzandrock
jazzandrock avatar
jazzandrock

Making software universally accessible