Repository navigation
OAAX reference implementation 2.0.0
The reference CPU runtime and conversion toolchain for the OAAX 2.0 specification. Use it to try OAAX, or as the starting point for a new accelerator implementation.
What's new
- OAAX 2.0 C API (
oaax_runtime.h), replacing the 9-function v1 interface: multi-model loading, per-model config, structuredRuntimeStatuscodes and aruntime_get_info()diagnostic call. - Breaking: the v1 header
runtime_core.hppis removed. v1 hosts must move to the 2.0 API. - 19 security issues fixed (2 critical, 6 high, 7 medium, 4 low), among them a double free and a leak in the worker loop,
exit()called inside the shared library, path validation of--onnx-path, the toolchain container running as root, and unpinned CI actions and Python dependencies. - Test framework: pytest suites for conversion, Docker end to end and YOLO models, C++ runtime tests, and an OAAX vs. ONNX Runtime benchmark over 9 YOLO variants.
- README pipeline diagram,
logs.jsonformat docs andTHIRD_PARTY_NOTICES.txt.
Downloads
Binaries are in the OAAX bucket, not attached to this page. Built by CI from this tag's commit dd350eb.
| Artifact | Platform | Size | SHA-256 |
|---|---|---|---|
| Runtime | Linux x86_64 | 8.1 MB | f3b71a075b0db7bbc164ca8a3029e719e71a3bcf896ba29232e150ee7a9bc920 |
| Runtime | Linux aarch64 | 7.0 MB | 2f26e2bf10b757c4f639f24695e5900865cf6c9cc669fbad128a79f764e551dc |
| Runtime | Windows x86_64 | 4.9 MB | 9b655d87927d4bdad7f4c39e27a3ce48de531b2b522e9138227769e101fd3bb4 |
| Conversion toolchain | Docker image, x86_64 | 796 MB | df66ce96c266fa366aac20f044edc9614af5de17a14b2dc9a35e22d8cd34007c |
Download and verify in one step with oaax-manager:
uvx oaax-manager fetch runtime cpu # this machine's platform
uvx oaax-manager fetch toolchain cpu # prints the `docker load` command to runKnown issues
Planned for a 2.0.x patch. Details in the linked issues.
- #45: the runtime aborts at process exit if
runtime_cleanup()was not called. Always call it. - #46:
runtime_enqueue_inputaccepts requests that do not match the model and silently loses them. - #47: memory grows with each
init/load_models/cleanupcycle (about 1 MB per cycle). - #48: smaller runtime behaviours (
retrieve_output(-1)after cleanup, staleget_error, generic status codes). - #49: the toolchain writes into its input directory, accepts an empty
.onnxand leaves no log on failure.
Full changelog: CHANGELOG.md.
Release notes drafted with AI assistance (Claude) and reviewed by a maintainer.