Please install mise, including the shell integration.
It is needed for all use of this repository.
Configure it with
mise settings experimental=true
mise settings set cargo.binstall trueUse mise run fmt and mise run check to run formatters and checkers.
In a separate terminal start OpenObserve (o2) and leave it running.
mise run o2Then start the fetch the ONNX models and run the server
mise run download-models
mise run build-modules
mise run ws-serverScan the QR-Code with a smart-phone camera and open the URL.
Select the module to run in the drop-down, then click "Run module" button.
Note: The WASM build disables WebAssembly reference types, so it can still load on older browsers such as Chrome 95.
In a separate terminal, open the OpenObserve UX using:
mise run open-o2The server logs appear in the Logs section.
The module list is dynamically populated from the modules in services/ws-modules.
Each module must have a package.json that defines a main which contains a JavaScript file
that can load and run the module.
Under each module in ws-modules, the package can be found in a subdirectory pkg.
Most of the module are built from Rust using wasm-pack build --target web.
There are also modules written in:
- Python, using pyodide
- .Net C#
- Dart
- Zig, including C code.
The default UX in the web-browser is also a loadable module located in services/ws-server/static.
A custom UX module can be used by setting the ws-server environment variable MODULES_ROOT.
Run the end-to-end tests using Chrome:
mise run ws-e2e-chromeRun an example demo scenario using et-cli
cargo install --path utilities/cli --force
et-cli generate-deployment \
--input-file verification/local/input/facility-security-scenario.yaml \
--output-dir verification/local/output/facility-security-scenarioThis will generate a mise.toml file under
verification/local/output/facility-security-scenario. Run the following
command to start the demo scenario:
mise run generated-scenarioThe generated scenario config only selects which prebuilt modules ws-server
serves. Module builds are expected to be handled separately from the repository
root.
To regenerate all checked-in verification outputs from
verification/*/input, writing each scenario to
the matching verification/*/output/<input-file-stem> folder:
mise run regen-verificationThis repository is part of a grant managed by the School of EECMS, Curtin University.
ABN 99 143 842 569.
CRICOS Provider Code 00301J.
TEQSA PRV12158