kmeans_uni 0.1.0

Fast, safe K-Means++ with SIMD acceleration, mini-batch training and WASM support.
Documentation
# Note on SIMD in WASM

The demo and `wasm` feature default to the scalar backend for portability. The `wide` crate can target wasm32 SIMD (`simd128`), but you must:

- Build with the `wide` feature enabled and `-C target-feature=+simd128`.
- Run in a browser/runtime that supports wasm SIMD.

The demo UI has a "Use SIMD" toggle, if you build without `simd128`/`wide` it will error.

## WASM Support

Builds a browser-friendly WASM package and runs a small K-Means demo.

## Prerequisites

```bash
rustup target add wasm32-unknown-unknown
cargo install wasm-pack
cargo install basic-http-server
```

## Build

The WASM demo lives in `examples/wasm`. The crate is built from the root with the `wasm` feature.

```bash
# from repo root
wasm-pack build --target web --out-dir examples/wasm/pkg -- --features wasm
```

To try SIMD, build with the SIMD toggle enabled in the demo and ensure both `wide` and `simd128` are available:

```bash
# enable the example's simd feature (for dep-wide) and pass simd128
RUSTFLAGS="-C target-feature=+simd128" wasm-pack build --target web --out-dir examples/wasm/pkg -- --features wasm,wide
```

## Run locally

```bash
basic-http-server examples/wasm -a 127.0.0.1:8000
# then open http://127.0.0.1:8000/index.html
```

Click "Run demo" to train a small K-Means++ model on a random 2D dataset in the browser and see the predicted labels/centroids. The crate exposes a reusable wasm API (`kmeans_uni::wasm::WasmModel`) so other projects can depend on it directly, the demo re-exports the same class (constructor fits, accepts an iteration count, `predict` runs inference, `centroids` returns the trained centers).