Graphite/frontend/wasm
Dennis Kobert 5b1d3a0ae4
Sandbox node graph execution on native targets and attempt recovery from panics on Wasm (#1846)
* Test out wasm unwinding

* Implement panic catching for native targets

* Hack in support for recovering panics in wasm

* Keep debug info in release builds

* Check for DynAnyNode in Backtrace because that can't be inlined as well

* Improve error dialog

* Use a mutex for storing the frontend state instead of a RefCell

* Code review

* Update crash text

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-07-28 16:46:44 -07:00
..
.cargo Sandbox node graph execution on native targets and attempt recovery from panics on Wasm (#1846) 2024-07-28 16:46:44 -07:00
src Sandbox node graph execution on native targets and attempt recovery from panics on Wasm (#1846) 2024-07-28 16:46:44 -07:00
tests Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00
Cargo.toml Sandbox node graph execution on native targets and attempt recovery from panics on Wasm (#1846) 2024-07-28 16:46:44 -07:00
README.md Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00

Overview of /frontend/wasm/

WASM wrapper API: src/editor_api.rs

Provides bindings for JS to call functions defined in this file, and for FrontendMessages to be sent from Rust back to JS in the form of a callback to the subscription router. This WASM wrapper crate, since it's written in Rust, is able to call into the Editor crate's codebase and send FrontendMessages back to JS.

WASM wrapper helper code: src/helpers.rs

Assorted function and struct definitions used in the WASM wrapper.

WASM wrapper initialization: src/lib.rs

Entry point for the Rust entire codebase in the WASM environment. Initializes the WASM module and persistent storage for editor and WASM wrapper instances.

WASM wrapper tests: tests/

We currently have no WASM wrapper tests, but this is where they would go.