# mxaccess (Rust port) Native Rust replacement for AVEVA / Wonderware MXAccess. See `../design/` for the architectural specification, `../src/` for the .NET reference (the executable spec), and `../CLAUDE.md` for project-wide rules. ## Status **M0** — Workspace skeleton. Stub types compile; nothing is implemented yet. See `../design/60-roadmap.md` for the M0–M6 milestone plan. ## Layout ``` rust/ Cargo.toml workspace root rust-toolchain.toml 1.85 stable crates/ mxaccess-codec/ pure protocol codec, no I/O mxaccess-galaxy/ Galaxy SQL resolver (tiberius) mxaccess-rpc/ DCE/RPC + NTLMv2 + OXID + OBJREF mxaccess-callback/ INmxSvcCallback RPC server mxaccess-nmx/ INmxService2 client mxaccess-asb-nettcp/ net.tcp framing (MC-NMF + MC-NBFX/NBFS) mxaccess-asb/ IASBIDataV2 client mxaccess/ async session + Transport trait + public API mxaccess-compat/ LMXProxyServer-shaped facade ``` ## Build ```powershell cargo build --workspace cargo test --workspace cargo clippy --workspace -- -D warnings cargo fmt --check ``` ## Live probes ```powershell . ..\tools\Setup-LiveProbeEnv.ps1 cargo test -p mxaccess --features live -- --ignored ``` The setup script fetches credentials from Infisical via `wwtools/secrets/Get-Secret.ps1`. Never inline plaintext credentials. ## License MIT — see `../LICENSE`.