js-wasm
This project wants to be a simple, easy to learn, technology-agnostic way to call JavaScript from WebAssembly.
Use any WebAssembly programming language out of the box:
See a demo of it working!
How It Works
Load WebAssembly like JavaScript.
...
Create JavaScript functions and invoke them
Rust:
[]
= "0"
let fn_log = register_function;
let msg = "Hello World!";
fn_log.invoke_2;
C/C++:
= ;
char *msg = "Hello World!";
;
JSFunction fnLog
In your JS function context
is passed in to handle most issues you'll encounter
context.getUtf8FromMemory(start,length)
- Extract utf-8 text from your program's memory.context.writeUtf8ToMemory(start,str)
- Write utf-8 to a memory location you are sure it should go.context.storeObject(object)
- Store an object in your context for later reference, get a handle you can give to WebAssembly.context.getObject(handle)
- Retreive and object from your context with a handle.context.releaseObject(handle)
- Release a stored object so it's memory can be freed.context.module
- Get access to your program so you can call methods on it.