Skip to main content

Crate arora_web

Crate arora_web 

Source
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.