# Runtime distribution | Platform | Distribution | Qualification | |---|---|---| | macOS ARM64, macOS 14.0+ | Versioned complete native archive; CPU ORT 1.30.0/API27 | Original evidence plus fresh archive/MCP tests in release report | | macOS x86_64 | Build source natively, use matching ORT 1.30.0 dylib | Candidate, not tested/released | | Linux x86_64 / AArch64 | Build source natively, use matching ORT 1.30.0 libonnxruntime.so plus dependencies | Candidate, not tested/released | | Windows x86_64 | Build .exe natively, use matching ORT DLL and dependencies; adapter patch below | Candidate, not tested/released | The original runtime hardcoded libonnxruntime.dylib. Release source changes only the library-name selector using compile-time target_os and the boundary-test tokenizer path. The ARM binary remains byte-for-byte original. Build using `cargo build --locked --release --manifest-path runtime/Cargo.toml`; run `cargo test --locked --release --manifest-path runtime/Cargo.toml`. Rust 1.94.1 was used originally. Do not use a different runtime version/API without recording and requalifying it. For each native build, copy model.onnx, tokenizer.json, tokenizer_config.json, config.json, calibration.json and all notices from bundle; install the native executable as datafog-pii and the corresponding runtime library in that directory. Acquire matching CPU ONNX Runtime 1.30.0 from official platform binaries or pinned official wheel. Preserve all DLL/so dependencies, record upstream download URLs/hashes, run a load test on the minimum OS, and issue a new archive/checksum manifest. Dynamic loading avoids Rust-side auto-downloads. Windows PR #32 currently requires and launches the literal datafog-pii path. It must select datafog-pii.exe on Windows in BOTH its required-file check and subprocess argv before Windows is supported. An unmodified PR #32 is not declared Windows-compatible. Linux/macOS retain the existing argv contract. Qualification gate for every platform: checksum verification; native unit/boundary tests; seven-label JSONL parity with the frozen Python reference including Unicode/long input and invalid-request recovery; opt-in actual-model MCP tests at the pinned PR commit (PERSON/address mappings, byte/codepoint offsets, CSV scan/redact/mask/remove, unchanged source bytes, no model text leakage); runtime failure tests; notices inventory and minimum-OS load test. Candidate builds are not equivalent to native qualification. No cross-platform result is inferred from the Mac run.