@12core/hyperid-wasm 中文文档教程

发布于 4年前 浏览 36 更新于 3年前

hyperid-wasm

ZZ 编写并编译为 WebAssembly (WASM) 格式的 HyperID 实现

Installation

Node

$ npm install @12core/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])

创建一个新的 hyperid 生成器,其中 opts 是相同的参数 赋予原始 hyperid

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

id = generator()

hyperid 上下文生成一个 hyperid。 (见上文)

const id = generator()

Benchmark

这个原始模块这个快 4 倍 .

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

默认情况下,该模块为 WebAssembly 模块分配 2 页内存。 即 2 * 64 * 1024 字节。

Maximum Memory

该模块最多允许 256 页内存。 即 256 * 64 * 1024 字节。

See Also

  • https://github.com/mcollina/hyperid

License

麻省理工学院

hyperid-wasm

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

Installation

Node

$ npm install @12core/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

  • https://github.com/mcollina/hyperid

License

MIT

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文