GitHub - mbasso/react-wasm: Declarative WebAssembly instantiation for React
source link: https://github.com/mbasso/react-wasm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
react-wasm
Declarative WebAssembly instantiation for React
Installation
You can install react-wasm using npm:
npm install --save react-wasm
If you aren't using npm in your project, you can include reactWasm using UMD build in the dist folder with <script>
tag.
Usage
Once you have installed react-wasm, supposing a CommonJS environment, you can import and use it in this way:
import Wasm from 'react-wasm'; // supposing an "add.wasm" module that exports a single function "add" const ExampleComponent = () => ( <Wasm url="/add.wasm"> {({ loading, error, data }) => { if (loading) return 'Loading...'; if (error) return 'An error has occurred'; const { module, instance } = data; return ( <div> 1 + 2 = {instance.exports.add(1, 2)} </div> ); }} </Wasm> );
API
type WasmProps = { // you can instantiate modules using a URL // or directly a BufferSource (TypedArray or ArrayBuffer) url?: string, bufferSource?: BufferSource, // An optional object containing the values to be imported into the newly-created Instance // such as functions or WebAssembly.Memory objects. // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate#Syntax importObject?: {}, children: (renderProps: { loading: boolean, error: ?Error, data: ?{ module: WebAssembly.Module, instance: WebAssembly.Instance } }) => React.Node };
Browser support
react-wasm
uses fetch and obviously WebAssembly APIs, they are broadly supported by major browser engines but you would like to polyfill them to support old versions.
if (!window.fetch || !window.WebAssembly) { ... } else { ... }
Change Log
This project adheres to Semantic Versioning.
Every release, along with the migration instructions, is documented on the Github Releases page.
Authors
Matteo Basso
Copyright and License
Copyright (c) 2019, Matteo Basso.
react-wasm source code is licensed under the MIT License.
Recommend
-
46
react-wasm Declarative WebAssembly instantiation for React Installation You can install react-wasm using npm : np...
-
77
Transforms CPX (JSX like syntax) into asm-dom Virtual DOM
-
143
Server Side Rendering Compare
-
110
HTML Template Instantiation Proposed by Apple on November 1st, 2017. 1. Background The HTML5 specification defines the te...
-
12
README.md wasm-coremark CoreMark 1.0 ported to WebAssembly. CoreMark is a simple, yet sophisticated ben...
-
2
WebAssembly from Scratch: From FizzBuzz to DooM Exploring WebAssembly from scratch from a backend-person-point-of-view. A story in four acts. Welcome to my journey where I will explore some
-
9
ffmpeg.wasm ffmpeg.wasm is a pure Webassembly / Javascript port of FFmpeg. It enables video & audio record, convert and stream right inside browsers. AVI to MP4 Demo Try it:
-
7
WebAssembly in Envoy Background As of early 2019, Envoy is a statically compiled binary, with all its extensions compiled at build-time. This means that projects that provide custom extensions (e.g. Istio), must maintain and...
-
2
SANE WebAssembly (sane-wasm) A project to bring the SANE API to the web. Currently, it only supports USB scanners and is only tested on a browser environment (Web...
-
1
WASM Parquet WebAssembly bindings to read and write the Apache Parquet format to and from Apache Arrow using the...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK