Installation Guide
MetaMUI Crypto is a release candidate (1.0.0-rc.7). No package is
published on a public registry yet. Until the launch publishes them, every
target is built from the source tree, or installed from a local candidate
artifact built by the release tooling (scripts/public-release/package-*.py
in the source repository). The package names below are the decided public
coordinates; none of them resolves anywhere today.
Each build command below is the one the release preflight runs; each
replays the algorithm’s upstream test vectors from test-vectors/ through
the public API, and a missing vector file fails the run.
Prerequisites
Clone the curated export (the public repository) and initialise the two reference submodules the C build compiles:
git clone https://github.com/SovereignWallet-Network/metamui-crypto.git
cd metamui-crypto
git submodule update --init metamui-crypto-reference/c/mlkem-native metamui-crypto-reference/c/mldsa-native
Build from source
| Target | Toolchain the manifest declares | Build and test |
|---|---|---|
| Rust | Rust 1.95+ (rust-version) |
cd metamui-crypto-rust && cargo test --workspace --release |
| C | CMake 3.16+, a C99 compiler (GCC or Clang) | cd metamui-crypto-c && cmake -B build && cmake --build build && ctest --test-dir build |
| Swift | Swift tools 5.10; macOS 12+, iOS 15+, tvOS 15+, watchOS 8+ (Apple platforms only) | swift test --parallel at the repository root (its Package.swift re-roots the targets under metamui-crypto-swift/) |
| Go | Go 1.24+ | cd metamui-crypto-go && go test ./... |
| Python | Python 3.10, 3.11 or 3.12; a C compiler for the sdist | cd metamui-crypto-python && pip install . && python3 -m pytest |
| TypeScript | Node 20+, pnpm 9 | cd metamui-crypto-typescript && pnpm install && pnpm -r run build && pnpm test |
| WASM | wasm-pack (the npm packages bundle the output) | bash metamui-crypto-wasm/build.sh |
| Java | JDK 17 or 21, Maven | cd metamui-crypto-java && mvn verify |
| Kotlin | JDK 17 or 21 (Gradle wrapper included) | cd metamui-crypto-kotlin && ./gradlew build |
| C# | .NET 10 SDK | cd metamui-crypto-csharp && dotnet test MetaMUI.Crypto.sln |
Package coordinates (decided, not yet published)
| Target | Registry | Coordinates at 1.0.0-rc.7 |
|---|---|---|
| Rust | crates.io | metamui-crypto = "1.0.0-rc.7" (facade); metamui-<algorithm> per crate |
| Python | PyPI | pip install metamui-crypto==1.0.0rc7 |
| TypeScript | npm | npm install @metamui/crypto@1.0.0-rc.7 (facade); @metamui/<algorithm> per package |
| Swift | SwiftPM (git tag) | .package(url: "https://github.com/SovereignWallet-Network/metamui-crypto", exact: "1.0.0-rc.7"), product MetaMUICrypto |
| Go | module proxy | go get github.com/SovereignWallet-Network/metamui-crypto/metamui-crypto-go@v1.0.0-rc.7 |
| Java | Maven Central | id.metamui.crypto:<artifact>:1.0.0-rc7 (metamui-pqc for ML-KEM, ML-DSA, SLH-DSA) |
| Kotlin | Maven Central | id.metamui.crypto:metamui-crypto-kotlin:1.0.0-rc7 |
| C# | NuGet | dotnet add package MetaMUI.Crypto.<Algorithm> --version 1.0.0-rc.7 |
| C | none (source archive) | metamui-crypto-c-1.0.0-rc.7.tar.gz; CMake package metamui-crypto-c, pkg-config metamui-<module> (Version: 1.0.0-rc.7); see the C API reference |
The Java reactor’s POMs, the Kotlin build file and the C tree carry the
release line (with the Rust, TypeScript, WASM and Python manifests, the
adopted list of namespaces.json in the source repository), so a candidate
built from the tree resolves at the coordinates above. None is on a registry.
Every quickstart on the Quick Start
page and in the per-language API references was run against a locally
built candidate of the tree (a crate registry, wheel, npm tarballs, Maven
repository, NuGet feed, Go module proxy, CMake prefix or SwiftPM path
dependency); the runs are recorded in the source repository’s evidence file
documents/public-release/evidence/229-documentation.md.
Platform notes
- Rust: portable scalar code only; the public release carries no SIMD,
assembly or CPU-feature-detection path, and the crates require
std. - Python: wheels carry compiled extensions (SHA-2/SHA-3/SHAKE/HMAC and
the post-quantum cores compiled from
metamui-crypto-c), one wheel per interpreter; nothing wraps an external cryptography library. - TypeScript / WASM: every family but ML-DSA runs in WebAssembly compiled from the Rust crates; ML-DSA is the package’s TypeScript implementation. Browsers are reached through a bundler.
- Swift: Apple platforms only. Linux and Windows are not supported Swift targets.
- Kotlin / Java: JVM 17 bytecode. Android: minimum API 33; the 45 profiles replay on the arm64-v8a emulator at API 33 and API 35 (including an R8-minified release build), with no physical-device run yet (
documents/public-release/evidence/220-jvm-android.md§14–§15). - C: one static library per module; link one algorithm family per program where the archives overlap (see the C API reference).