Expand description
Run an Arora device in the browser.
The centerpiece is [AroraWeb] — exported to JavaScript as AroraRuntime
— the wasm_bindgen surface over an [arora::Arora]: a synchronous
step, a self-pacing run, in-process
call dispatch, and the [store_json] accessors that
move store values across the JS boundary as JSON in the Arora
[Value] vocabulary. Its JS constructor (and [AroraWebBuilder], JS
AroraRuntimeBuilder) builds the self-contained demo device on the
runtime’s in-process defaults; a downstream device composes its own
[arora::Arora] with [arora::AroraBuilder] — the HAL, bridge, and store
seams are trait objects that cannot cross the JS boundary — and wraps it
with AroraWeb::from, reusing this whole JS surface.
It also carries a lower-level surface: [Engine] and [BehaviorTreeRunner]
load guest modules (header JSON + executable bytes) and run behavior trees
directly on the engine, hosting modules via the browser’s native
WebAssembly runtime — see arora_engine::executor::browser.
This crate only carries non-trivial content when built for wasm32-*
targets. On the host it is an empty shim (deps are gated to wasm32) so it
can sit in the workspace and be verified by cargo package on publish
without pulling wasm-only deps into a host link.