Building the ten targets
This page replaces the 3.0.0-era “Build System Standardization” guide, which described seven platform builds, a shared Makefile and GitHub Actions matrices that the 1.0.0 release candidate does not ship. What the candidate does ship is one source tree per language, each with its own native build; the toolchain each manifest declares is below. The build and test command per target is on the Installation Guide and is not repeated here.
Toolchain minimums declared by each target’s manifest
Taken from the generated support table (documents/public-release/generated/support-table.md in the source repository, produced from the catalog by scripts/public-release/targets.py --generate):
| target | declared minimum | source |
|---|---|---|
| Rust | MSRV 1.95 | metamui-crypto-rust/Cargo.toml |
| C | CMake >= 3.16 | metamui-crypto-c/CMakeLists.txt |
| Swift | swift-tools 5.10; Apple platforms only (macOS 12+, iOS 15+ per Package.swift) |
metamui-crypto-swift/Package.swift |
| Go | go 1.24 | metamui-crypto-go/go.mod |
| Python | python >= 3.10 | metamui-crypto-python/pyproject.toml |
| TypeScript | node >= 20.0.0 | metamui-crypto-typescript/package.json |
| Kotlin | kotlin-jvm 1.9.21 (JDK per Java) | metamui-crypto-kotlin/build.gradle.kts |
| Java | JDK release 17 | metamui-crypto-java/pom.xml |
| C# | .NET SDK 10.0.100 (TFM from Directory.Build.props) |
metamui-crypto-csharp/global.json |
| WASM | MSRV 1.95 + target wasm32-unknown-unknown; wasm-pack for the npm bundles |
metamui-crypto-rust/Cargo.toml |
What is common to the builds
- Own implementations. No build fetches or links an external cryptography library. Python compiles its SHA-2/SHA-3/SHAKE/HMAC and post-quantum extensions from
metamui-crypto-c; the Swift post-quantum products compile the C sources through shims; the npm packages bundle WebAssembly compiled from the Rust crates. The twometamui-crypto-referencesubmodules the C build compiles are test oracles and build inputs for C only. - Portable code only. The public release carries no SIMD, assembly, GPU or CPU-feature-detection path; the hardware backends in the source tree are outside it, and no performance figure is claimed for any build.
- Upstream vectors in every test run. Each target’s test suite replays the algorithm’s upstream answer files from
test-vectors/; a missing vector file fails the run rather than skipping. - One version per release line. The release line is
1.0.0-rc.7; its per-ecosystem spellings are1.0.0rc7(PyPI),v1.0.0-rc.7(Go) and1.0.0-rc7(Maven). The Java reactor’s POMs and the Kotlin build file carry1.0.0-rc7; the C tree carries1.0.0-rc.7(METAMUI_CRYPTO_C_VERSION,include/metamui/version.hand the installed pkg-config files), withproject(VERSION 1.0.0)as the numeric core CMake’s package version file requires.
What this page does not provide
There is no shared Makefile, no cross-language build script and no CI matrix in the candidate; the per-language commands on the Installation Guide are the whole build surface. This page carries no command of its own; of the Installation Guide’s commands, only the Rust (cargo) and Python (pip install of the source directory) builds were run for the 2026-10-16 pages, recorded in documents/public-release/evidence/229-documentation.md.