mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-12-19 16:11:50 +03:00
25b26f41e7
... and add a parallel raytracing demo! This commit adds enough support to `wasm-bindgen` to produce a workable wasm binary *today* with the experimental WebAssembly threads support implemented in Firefox Nightly. I've tried to comment what's going on in the commits and such, but at a high level the changes made here are: * A new transformation, living in a new `wasm-bindgen-threads-xform` crate, prepares a wasm module for parallel execution. This performs a number of mundane tasks which I hope to detail in a blog post later on. * The `--no-modules` output is enhanced with more support for when shared memory is enabled, allowing passing in the module/memory to initialize the wasm instance on multiple threads (sharing both module and memory). * The `wasm-bindgen` crate now offers the ability, in `--no-modules` mode, to get a handle on the `WebAssembly.Module` instance. * The example itself requires Xargo to recompile the standard library with atomics and an experimental feature enabled. Afterwards it experimentally also enables threading support in wasm-bindgen. I've also added hopefully enough CI support to compile this example in a builder so we can upload it and poke around live online. I hope to detail more about the technical details here in a blog post soon as well!
30 lines
678 B
TOML
30 lines
678 B
TOML
[package]
|
|
name = "raytrace-parallel"
|
|
version = "0.1.0"
|
|
authors = ["The wasm-bindgen Developers"]
|
|
|
|
[lib]
|
|
crate-type = ["cdylib"]
|
|
|
|
[dependencies]
|
|
console_error_panic_hook = "0.1"
|
|
futures = "0.1"
|
|
js-sys = { path = '../../crates/js-sys' }
|
|
raytracer = { git = 'https://github.com/alexcrichton/raytracer', branch = 'update-deps' }
|
|
wasm-bindgen = { path = "../..", features = ['serde-serialize'] }
|
|
wasm-bindgen-futures = { path = '../../crates/futures' }
|
|
|
|
[dependencies.web-sys]
|
|
path = '../../crates/web-sys'
|
|
features = [
|
|
'CanvasRenderingContext2d',
|
|
'ErrorEvent',
|
|
'Event',
|
|
'ImageData',
|
|
'Navigator',
|
|
'Window',
|
|
'Worker',
|
|
'DedicatedWorkerGlobalScope',
|
|
'MessageEvent',
|
|
]
|