Installation

Add archmage to your Cargo.toml:

[dependencies]
archmage = "0.4"

For SIMD vector types with natural operators, also add magetypes:

[dependencies]
archmage = "0.4"
magetypes = "0.4"

Feature Flags

archmage

FeatureDefaultDescription
stdStandard library support
macros#[arcane], incant!, etc.
avx512AVX-512 token support

magetypes

FeatureDefaultDescription
stdStandard library support
avx512512-bit types (f32x16, etc.)

Platform Requirements

x86-64

Works out of the box. Tokens detect CPU features at runtime.

For compile-time optimization on known hardware:

RUSTFLAGS="-Ctarget-cpu=native" cargo build --release

AArch64

NEON is baseline on 64-bit ARM—NeonToken::summon() always succeeds.

WASM

Enable SIMD128 in your build:

RUSTFLAGS="-Ctarget-feature=+simd128" cargo build --target wasm32-unknown-unknown

Verify Installation

use archmage::{SimdToken, Desktop64, Arm64};

fn main() {
    // Tokens compile everywhere - summon() returns None on unsupported platforms
    match Desktop64::summon() {
        Some(token) => println!("{} available!", token.name()),
        None => println!("No AVX2+FMA"),
    }

    match Arm64::summon() {
        Some(token) => println!("{} available!", token.name()),
        None => println!("No NEON"),
    }
}

Run it:

cargo run

On x86-64 (Haswell+/Zen+): "X64V3 available!" and "No NEON". On AArch64: "No AVX2+FMA" and "Neon available!".