1.0.2 • Published 6 years ago

wasm-instantiate-streaming v1.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

wasm-instantiate-streaming

package-version node-version CircleCI codecov license

Polyfill of WebAssembly.instantiateStreaming instantiateStreaming loading WebAssembly modules efficiently

The optimizations we applied can be summarized as follows:

  • Use asynchronous APIs to avoid blocking the main thread
  • Use streaming APIs to compile and instantiate WebAssembly modules more quickly
  • Don’t write code you don’t need

Loading WebAssembly modules efficiently  |  Web  |  Google Developers

Install

npm install wasm-instantiate-streaming

Usage

Using import/require

import { instantiateStreaming } from 'wasm-instantiate-streaming'

// For browser
instantiateStreaming(fetch('some-module.wasm'))

// Use with node-fetch
const fetch = require('node-fetch')
instantiateStreaming(fetch('some-module.wasm'))

// Use with fs module
const fs = require('fs')
const { promisify } = require('util')
const readFile = promisify(fs.readFile)
instantiateStreaming(readFile('./some-module.wasm'))

Using without import/require

Please use build/browser.min.js

<script src="path/to/build/browser.min.js">
instantiateStreaming(fetch('some-module.wasm'))

Pass importsObject

const importObject = {
  imports: {
    imported_func (arg) {
      console.log(arg)
    }
  }
}

instantiateStreaming(fetch('some-module.wasm'), importObject)

API

See MDN document

WebAssembly.instantiateStreaming() - JavaScript | MDN

Development

git clone git@github.com:Leko/wasm-instantiate-streaming.git
cd wasm-instantiate-streaming

git submodule update --init --recursive
cd deps/wabt
make
cd ../..

npm install
npm test

License

MIT

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.9.1

6 years ago

0.9.0

6 years ago