A varint implementation for WebAssembly (WASM) written in ZZ that implements an Abstract Encoding interface.
$ npm install @12core/varint-wasm$ wapm install jwerle/varint-wasmconst varint = require('varint-wasm')
// wait for module to be ready if loading in a browser environment
varint.ready(() => {
const encoded = varint.encode(64 * 1024)
console.log(encoded) // <Buffer 80 80 04>
const decoded = varint.decode(encoded)
console.log(decoded) // 65536
})Encode a number optionally into buffer at an optionally
specified offset.
Decode an input buffer into an integer optionally an optionally
specified offset.
Returns a promise that resolves or rejects when the WebAssembly exports are loading. In some cases, this may happen synchronously when this module is loaded.
await b64.ready()Because 32-bit integers are only supported in WASM at the time of
writing, you can only encode numbers up 2**31 -1.
By default, this module allocates 2 pages of memory for the WebAssembly module.
That is 2 * 64 * 1024 bytes.
This module allows at most 256 pages of memory. That is 256 * 64 * 1024 bytes.
MIT