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 trueThe mise configuration is stored in .mise.toml.
Before installing dependencies, please install openssl development files.
mise installUse 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:
- Dart
- Java
- .Net C#
- Python, using pyodide
- 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-scenarioTo generate a Docker Compose deployment instead, pass
--output-type docker-compose or set deployment_type: docker-compose in the
scenario input YAML. This writes compose.yaml to the output directory:
et-cli generate-deployment \
--input-file verification/local/input/facility-security-scenario.yaml \
--output-dir verification/local/output/facility-security-scenario \
--output-type docker-compose
cd verification/local/output/facility-security-scenario
docker compose up --buildThe 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. This generates
all supported deployment files for each scenario, currently mise.toml and
compose.yaml:
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